Как вставить API времени выполнения cuda, используемый в tenorflow? - PullRequest
0 голосов
/ 26 марта 2019

Я установил тензор потока (не из источника) на компьютере с Ubuntu x86-64 с CUDA 10 и подходящим графическим процессором. Моя цель - перехватить (используя LD_PRELOAD) API среды выполнения CUDA для любых приложений тензорного потока. К сожалению, для моего варианта использования я не могу построить тензор потока из источника для моей целевой машины, отличной от x86-64.

Я могу перехватывать вызовы cudaLaunchKernel, которые я выполняю из тестовой программы, написанной на C ++, которая динамически загружает API времени выполнения cuda, и при первом осмотре я подумал, что python должен аналогичным образом динамически загружать ту же самую cuda. ​​Поэтому - я запутался, потому что LD_PRELOAD не работает для нормально установленного приложения тензорного потока, работающего с включенным cuda. ​​

Я ожидаю, что вызовы cudaLaunchKernel в тензорном потоке должны быть перехвачены моей библиотекой вставки, которая является LD_PRELOAD. Это правильно?

1 Ответ

1 голос
/ 26 марта 2019

Похоже, что Tensorflow написал stream_executor, чтобы не использовать API времени выполнения CUDA, а вместо этого обернуть сам API драйвера CUDA (cuLaunchKernel) кодом с открытым исходным кодом.На это ссылаются в этом Запросе на получение к Tensorflow, чтобы разрешить вставку API среды выполнения CUDA, который был отклонен.Кроме того, в исходном коде TF (см. здесь ) мы видим, что API cu * / driver активно используется вместо API времени выполнения.

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