매우 느린 GPU 메모리 할당

매우 느린 GPU 메모리 할당

Python의 Nvidia GPU에서 메모리 할당이 매우 느린 문제가 있습니다.

새로운 Python 세션에서 GPU 계산을 실행할 때 tensorflow/pytorch는 갑자기 큰 메모리 덩어리를 할당하고 실제 계산을 수행할 때까지 약 4분 동안 작은 증분으로 메모리를 할당합니다. 모든 후속 계산은 즉시 수행됩니다.

무엇이 잘못될 수 있는지 아는 사람이 있나요? 아니면 메모리 할당 중에 실제로 무슨 일이 일어나고 있는지에 대한 로그를 얻는 방법은 무엇입니까?

CUDA 라이브러리와 NVIDIA 드라이버를 다시 설치해 보았습니다. 드라이버를 다시 설치하면 문제가 잠시 동안 해결된 후 메모리 할당이 다시 중단됩니다.

Python 출력:

Python 3.11.3 (main, Apr  5 2023, 14:15:06) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.timeit('import tensorflow as tf;tf.random.uniform([10])', number=1)
2023-04-17 09:08:24.062130: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-04-17 09:08:24.641429: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
2023-04-17 09:12:12.879503: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1635] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 21368 MB memory:  -> device: 0, name: GRID RTX6000-24Q, pci bus id: 0000:02:02.0, compute capability: 7.5
229.68861908599501

엔비디아-smi:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.182.03   Driver Version: 470.182.03   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GRID RTX6000-24Q    On   | 00000000:02:02.0 Off |                  N/A |
| N/A   N/A    P8    N/A /  N/A |  23527MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A    122079      C   ...Model-js4zUkog/bin/python    21743MiB |
+-----------------------------------------------------------------------------+

nvcc:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

답변1

라이선스를 확인할 수 없어 NVIDIA가 GPU를 조절하여 메모리 할당이 느려진 것을 발견했습니다.

나는 다음을 확인했다:

sudo cat /var/log/syslog | grep nvidia

그리고 발견한 것:

Apr 18 11:35:43 srv-apu102 nvidia-gridd: Valid GRID license not found. GPU features and performance are restricted. To enable full functionality please configure licensing details. Apr 18 11:42:32 srv-apu102 nvidia-gridd: Acquiring license. (Info: http://10.1.2.56:7070/request; NVIDIA RTX Virtual Workstation) Apr 18 11:42:32 srv-apu102 nvidia-gridd: Calling load_byte_array(tra) Apr 18 11:42:35 srv-apu102 nvidia-gridd: Error: Failed server communication. Server URL : http://10.1.2.56:7070/request - #012[1,7e2,2,0[74000008,7,110001f3]] Generic communications error.#012[1,7e2,2,0[75000001,7,30010255]] General data transfer failure. Couldn't connect to server

내 질문이 Ubuntu Lunar에 관한 것이라고 생각하는 사람들의 반대표에 관계없이 이것이 다른 사람들에게 도움이 되기를 바랍니다...

관련 정보