2016-11-19 24 views

回答

1

您可以检查内核(即实现,取决于设备),其位于该目录在OPS:https://github.com/tensorflow/tensorflow/tree/r0.11/tensorflow/core/kernels/

例如,假设你想知道softmax是否可以放在GPU。您可以导航到softmax的内核:https://github.com/tensorflow/tensorflow/blob/r0.11/tensorflow/core/kernels/softmax_op.cc。你会发现下面的代码:

REGISTER_KERNEL_BUILDER(
    Name("Softmax").Device(DEVICE_GPU).TypeConstraint<Eigen::half>("T"), 
    SoftmaxOp<GPUDevice, Eigen::half>); 

这意味着它的softmax内核GPU上用float16类型。先决条件是您必须在启用GPU的情况下构建张量流。

+0

非常感谢!这真的很有帮助! –

+0

在某些内核中,我看到类似[#define REGISTER_GPU_KERNELS(type)](https://github.com/tensorflow/tensorflow/blob/e7508b6efd51f7cfed32ff277e805f8ea60a7a48/tensorflow/core/kernels/variable_ops.cc)。我如何知道启用了哪些类型? –

+0

在那之下,有一个宏'TF_CALL_GPU_NUMBER_TYPES',在repo中搜索,你会发现[这个页面](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/ register_types.h#L162)。它表示'TF_CALL_GPU_NUMBER_TYPES'将注册类型为'float16','float32'和'double'的内核。 – yuefengz

相关问题