Extrem langsame GPU-Speicherzuweisung

Extrem langsame GPU-Speicherzuweisung

Ich habe ein Problem mit der extrem langsamen Speicherzuweisung auf einer NVIDIA-GPU von Python.

Wenn Sie in einer neuen Python-Sitzung eine GPU-Berechnung ausführen, weist Tensorflow/Pytorch den Speicher etwa vier Minuten lang in winzigen Schritten zu, bis es plötzlich einen großen Speicherblock zuweist und die eigentliche Berechnung durchführt. Alle nachfolgenden Berechnungen werden sofort ausgeführt.

Weiß jemand, was falsch sein könnte? Oder wie man ein Protokoll darüber erhält, was bei der Speicherzuweisung tatsächlich passiert?

Ich habe versucht, CUDA-Bibliotheken und NVIDIA-Treiber neu zu installieren. Die Neuinstallation der Treiber behebt das Problem für kurze Zeit, dann bleibt die Speicherzuweisung erneut hängen.

Python-Ausgabe:

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

nvidia-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

Antwort1

Ich habe herausgefunden, dass die langsame Speicherzuweisung dadurch verursacht wurde, dass Nvidia meine GPU drosselte, weil die Lizenz nicht überprüft werden konnte.

Ich überprüfte:

sudo cat /var/log/syslog | grep nvidia

Und gefunden:

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

Ich hoffe, dass dies anderen hilft, ungeachtet der Downvotes von Leuten, die anscheinend denken, dass meine Frage sich auf Ubuntu Lunar bezieht …

verwandte Informationen