Измерение ускорения тензорных ядер NVIDIA - PullRequest
0 голосов
/ 16 января 2019

Я использую тензорные ядра NVIDIA для архитектуры Volta (V100 GPU). Я хочу измерить влияние тензорных ядер на мой код (сверточная нейронная сеть в Tensorflow / Python для целей тестирования).

Как измерить ускорение Tensor Cores? Можно ли отключить Тензорные Ядра и запустить один и тот же код с / без них?

Что я пробовал:

  • настройка TF_DISABLE_CUDNN_TENSOR_OP_MATH до 1 (от это ). Но я все еще вижу, что Тензорные Ядра используются. Точнее, я вижу в nvprof log: volta_s884cudnn_fp16 строки (исчезают с этой опцией) и volta_s884gemm_fp16 (которые все еще здесь). Дополнительный вопрос: что означают эти строки?
  • сравнить с тем же кодом на архитектуре Pascal (P100), в котором нет тензорных ядер, где я вижу ускорение на 30%, но я не могу сказать, какая часть этих 30% вызвана улучшением графического процессора, а какая - тензорными ядрами производительность.
  • тренирует ту же сеть в tf.float16 и tf.float32, но тот же результат, я вижу улучшения, но не могу сказать, что вызвано уменьшением размера модели.

Заранее спасибо за любую помощь / совет по этому вопросу.

1 Ответ

0 голосов
/ 21 января 2019

Я выбрал хак, чтобы оценить прирост производительности Tensor Cores:

  • Я запустил код в float32 для архитектуры Pascal и Volta (чтобы оценить выигрыш в производительности архитектуры).
  • Я запустил код в float16 на обоих, и, предполагая, что прирост производительности архитектуры будет таким же, как у float32 и float16, я могу оценить, что другая часть прироста производительности (в float16) вменяется в Тензорные Ядра.
...