2016-11-19 22 views

答えて

1

あなたは、このディレクトリに配置されてOPSのためのカーネル(デバイス上すなわち実装)を確認することができます。たとえば、https://github.com/tensorflow/tensorflow/tree/r0.11/tensorflow/core/kernels/

を、あなたはsoftmaxは、GPU上に置くことができるかどうかを知りたいとします。 softmaxhttps://github.com/tensorflow/tensorflow/blob/r0.11/tensorflow/core/kernels/softmax_op.ccのカーネルに移動できます。これは、タイプfloat16とGPU上softmaxのカーネルがあることを意味

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

:あなたは、次のコードを見つけます。前提条件は、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'があり、それをリポジトリで検索すると[このページ](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/)が見つかります。 register_types.h#L162)。これは 'TF_CALL_GPU_NUMBER_TYPES'が' float16'、 'float32'、' double'型のカーネルを登録することを示します。 – yuefengz

関連する問題