Изменение примера кода RNN CuDNN для использования CUDNN_DATA_INT8 - PullRequest
0 голосов
/ 27 августа 2018

Пример RNN (RNN_example.cu), который находится в cudnn_samples_v7, настроен на использование CUDNN_DATA_FLOAT. Я хотел бы изменить его, чтобы использовать CUDNN_DATA_INT8. Когда я глобально сделал это изменение, скомпилировал и запустил, я получаю следующие ошибки времени выполнения:

$ ./RNN_int8 20 2 512 64 0
cuDNN Error: CUDNN_STATUS_NOT_SUPPORTED RNN_example_int8.cu 285
cuDNN Error: CUDNN_STATUS_NOT_SUPPORTED RNN_example_int8.cu 302
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 309
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 310
cuDNN Error: CUDNN_STATUS_NOT_SUPPORTED RNN_example_int8.cu 326
cuDNN Error: CUDNN_STATUS_NOT_SUPPORTED RNN_example_int8.cu 328
CUDA Error: out of memory RNN_example_int8.cu 330
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 373
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 402
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 373
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 402
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 373
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 402
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 373
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 402
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 482
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 516
cuDNN Error: CUDNN_STATUS_BAD_PARAM RNN_example_int8.cu 541

Например, ошибка в строке 309 выполняет этот код:

cudnnErrCheck(cudnnSetFilterNdDescriptor(wDesc, CUDNN_DATA_INT8, CUDNN_TENSOR_NCHW, 3, dimW)); 

Я подозреваю, что тип формата (CUDNN_TENSOR_HCHW) не соответствует типу данных - это правильная гипотеза? Если да, то какой формат здесь нужен?

1 Ответ

0 голосов
/ 22 сентября 2018

CuDNN в настоящее время не поддерживает INT8 RNN, мы предлагаем использовать входной выход FP16 для достижения лучшей производительности, чем float. Если вы используете Volta, обязательно включите CUDNN_TENSOR_OP_MATH, чтобы получить аппаратное ускорение.

Все поддерживаемые комбинации настроек cuDNN RNN можно найти здесь https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index.html#features-of-rnn-functions Дайте нам знать, если у вас есть другие проблемы!

...