Сбой nvprof, поскольку он записывает очень большой файл в / tmp / и не хватает места на диске - PullRequest
0 голосов
/ 31 мая 2019

Как обойти ошибку nvprof, возникающую при запуске на диске с относительно небольшим доступным пространством?

В частности, при профилировании моего ядра cuda,Я использую следующие две команды:

# Generate the timeline
nvprof -f -o ~/myproj/profiling/timeline-`date -I`.out ~/myproj/build/myexe
# Generate profiling data
nvprof -f --kernels ::mykernel:1 --analysis-metrics -o ~/myproj/profiling/analysis-metrics-`date -I`.out ~/myproj/build/myexe

Первая команда nvprof работает нормально.Второй nvprof должен записать временный файл 12 ГБ в /tmp, прежде чем он сможет продолжить.Поскольку на моем облачном диске объемом 38 ГБ доступно всего 6 ГБ, nvprof дает сбой.Предполагая, что я не могу освободить больше дискового пространства, как мне обойти эту проблему?

Примечание: В большинстве случаев это не имеет отношения к диагностике проблемы, но nvprof сообщает о Error: Application received signal 7, что является «Ошибка шины (плохой доступ к памяти)» (см. http://man7.org/linux/man-pages/man7/signal.7.html для получения дополнительной информации).

1 Ответ

1 голос
/ 31 мая 2019

Можно указать nvprof использовать другой временный каталог, установив переменную окружения TMPDIR.Это полезно, потому что начиная с ядра Linux 2.6, вполне вероятно, что у вас есть RAM-диск, доступный по адресу /dev/shm (для получения дополнительной информации см. https://superuser.com/a/45509/363816).Таким образом, добавление следующего в начале скрипта [bash], скорее всего, обойдет вашу проблему.

export TMPDIR=/dev/shm
...