При запуске приложения TensorFlow на графическом процессоре NVIDIA, есть ли способ узнать, какие вызовы библиотеки CUDA будут запущены? - PullRequest
0 голосов
/ 24 марта 2020

Более подробно: я запускаю и профилирую (с помощью nvprof) приложение TensorFlow, работающее на графическом процессоре, который в основном выполняет conv2d_transpose:

            with tf.device('/GPU:0'):
            self.conv1_ = tc.layers.convolution2d_transpose(
                z, 32, [4, 4], [2, 2],
                weights_initializer=tf.random_normal_initializer(stddev=0.02),
                weights_regularizer=tc.layers.l2_regularizer(2.5e-5),
                padding = 'VALID',
                activation_fn=tf.identity
            )

Тем не менее, когда я проверяю события и метрики профилирования, там на самом деле запущено еще несколько ядер: Вот изображение из Visual Profiler всех имен ядер, которые работали

Некоторые из них, как я ожидал, например tensorflow::BiasNCHWKernel Но другие как fft2d_r2c_32x32 я не ожидал. Я предполагаю, что это оптимизация FFT, сделанная для вызова conv2d_transpose?

Правильно ли мое предположение? Где я могу найти информацию о том, как TensorFlow переводит библиотечные вызовы в библиотечные вызовы CUDA? Я хотел бы лучше понять все ядра на картинке, но трудно точно понять, что они делают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...