У меня чистая установка CUDA-10.1 на Ubuntu 18.04 LTS, безголовый сервер. Это вывод nvidia-smi
:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.126.02 Driver Version: 418.126.02 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K40m On | 00000000:82:00.0 Off | Off* |
| N/A 23C P8 20W / 235W | 0MiB / 12206MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K40m On | 00000000:C2:00.0 Off | Off* |
| N/A 22C P8 19W / 235W | 0MiB / 12206MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Я скомпилирую следующую простую программу:
#include <cuda_runtime.h>
int main(void)
{
cudaError_t err = cudaSuccess;
float *buf = NULL;
err = cudaMalloc((void **)&buf, 1000);
if (err != cudaSuccess) {
fprintf(stderr, "Failed to allocate device memory (error code %s)!\n", cudaGetErrorString(err));
return EXIT_FAILURE;
}
err = cudaFree(buf);
if (err != cudaSuccess) {
fprintf(stderr, "Failed to free device memory (error code %s)!\n", cudaGetErrorString(err));
return EXIT_FAILURE;
}
return EXIT_FAILURE;
}
Затем я запускаю ее несколько раз вручную, и она периодически дает сбой:
afeldman@apollo:~/cuda$ ./test_cuda_malloc
afeldman@apollo:~/cuda$ ./test_cuda_malloc
Failed to allocate device memory (error code all CUDA-capable devices are busy or unavailable)!
afeldman@apollo:~/cuda$ ./test_cuda_malloc
Failed to allocate device memory (error code all CUDA-capable devices are busy or unavailable)!
afeldman@apollo:~/cuda$ ./test_cuda_malloc
Failed to allocate device memory (error code all CUDA-capable devices are busy or unavailable)!
afeldman@apollo:~/cuda$ ./test_cuda_malloc
afeldman@apollo:~/cuda$ ./test_cuda_malloc
Failed to allocate device memory (error code all CUDA-capable devices are busy or unavailable)!
afeldman@apollo:~/cuda$
Я проверил много выводов nvidia-smi
, /var/log/kern
и /var/log/syslog
, и нет ничего, что могло бы помочь мне отследить проблему. Отключение одной из карт не помогло. Хост не используется во время этих экспериментов, и нет ничего, что использует NVidias.
Какие действия предпринимаются для устранения этого прерывистого сбоя?