Compiler errors 自定义tensorflow C+中的本征和+;GPUDevice上带Eigen::half的op
我尝试创建一个定制的TysFooSop.我已经使用了一些OPS来使用和普通C++。 当使用本征C++框架及其<代码>。它适用于具有Compiler errors 自定义tensorflow C+中的本征和+;GPUDevice上带Eigen::half的op,compiler-errors,tensorflow,eigen,nvcc,Compiler Errors,Tensorflow,Eigen,Nvcc,我尝试创建一个定制的TysFooSop.我已经使用了一些OPS来使用和普通C++。 当使用本征C++框架及其。它适用于具有double、float和Eigen::half类型的CPU,但在GPU上,它在编译时使用Eigen::half时会中断 我已将问题简化为l2loss_op的一个副本,我已将l2loss重命名为CustomL2Loss(否则会出现名称冲突)。见: 错误相当长: 由于它适用于除以外的所有其他情况(通过在l2loss_op.cu.cc中注释行确认),我正在考虑这是否是tensor
double
、float
和Eigen::half
类型的CPU,但在GPU上,它在编译时使用Eigen::half
时会中断
我已将问题简化为l2loss_op
的一个副本,我已将l2loss
重命名为CustomL2Loss
(否则会出现名称冲突)。见:
错误相当长:
由于它适用于除
以外的所有其他情况(通过在l2loss_op.cu.cc
中注释行确认),我正在考虑这是否是tensorflow问题。但是我可以编译tensorflow本身。支持半浮点数需要大于或等于3.5的cuda体系结构。您需要使用-arch compute_35标志进行编译以启用相应的指令。您可以尝试使用-arch compute_35调用nvcc吗?nvcc不知道“shfl\u down”这一事实似乎表明您的目标是一个不支持16位浮点的体系结构。谢谢,-arch compute\u 35
修复了它。你能把它作为一个答案,这样我就可以接受它了吗?我添加了一个答案。