2016-11-19 23 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

相關問題