Compiler errors 自定义tensorflow C+中的本征和+;GPUDevice上带Eigen::half的op

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

我尝试创建一个定制的TysFooSop.我已经使用了一些OPS来使用和普通C++。 当使用本征C++框架及其<代码>。它适用于具有
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
修复了它。你能把它作为一个答案,这样我就可以接受它了吗?我添加了一个答案。