どのような操作がテンソルフローのGPU上に置かれないのかをどのように知ることができますか?私が確認できる場所はありますか?どのような操作がテンソルフローでGPUに配置できないのかをどのように知ることができますか?
おかげ
どのような操作がテンソルフローのGPU上に置かれないのかをどのように知ることができますか?私が確認できる場所はありますか?どのような操作がテンソルフローでGPUに配置できないのかをどのように知ることができますか?
おかげ
あなたは、このディレクトリに配置されて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のカーネルに移動できます。これは、タイプfloat16
とGPU上softmax
のカーネルがあることを意味
REGISTER_KERNEL_BUILDER(
Name("Softmax").Device(DEVICE_GPU).TypeConstraint<Eigen::half>("T"),
SoftmaxOp<GPUDevice, Eigen::half>);
:あなたは、次のコードを見つけます。前提条件は、GPUを有効にしてテンソルフローを構築する必要があることです。
ありがとうございました!それは本当に便利です! –
カーネルによっては、[#define REGISTER_GPU_KERNELS(type)](https://github.com/tensorflow/tensorflow/blob/e7508b6efd51f7cfed32ff277e805f8ea60a7a48/tensorflow/core/kernels/variable_ops.cc)のようなものがありました。どのタイプが有効になっているかはどのように分かりますか? –
その下に、マクロ '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