Titan V using huge amount of memory
2 ビュー (過去 30 日間)
古いコメントを表示
Recently I added a second GPU (titan V) to my workstation. When I try to perform my simulations which use a parpool with each worker acces to the GPU's in the system I noticed that the Titan V uses a lot more memory than my other GPU (Tesla K40c) which results in out of memory and invalid object handles errors. The Titan V uses for the initialization of matlab on the GPU around 514MB whilst the tesla only takes 126 MB on the workers.
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.65 Driver Version: 390.65 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
===============================+======================+======================
| 0 TITAN V TCC | 00000000:04:00.0 Off | N/A |
| 33% 48C P8 30W / 250W | 709MiB / 12186MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Quadro K6000 TCC | 00000000:A1:00.0 Off | Off |
| 32% 57C P8 25W / 225W | 459MiB / 12214MiB | 0% Default | +-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory GPU PID Type Process name Usage | =============================================================================
| 0 14600 C ...iles\MATLAB\R2018a\bin\win64\MATLAB.exe 514MiB |
| 1 4436 C ...iles\MATLAB\R2018a\bin\win64\MATLAB.exe 126MiB |
| 1 24908 C ...iles\MATLAB\R2018a\bin\win64\MATLAB.exe 126MiB |
+-----------------------------------------------------------------------------+
0 件のコメント
回答 (2 件)
Joss Knight
2018 年 2 月 22 日
To avoid this cost, do not use the same GPU on multiple workers. Although the GPU is a data parallel system, it is not task parallel - in other words, anything you run on the GPU from different workers will run in serial, gaining you no benefit of overlap. In addition you are experiencing the additional problem that every new CUDA context being opened on the same GPU is causing this extra memory overhead.
To solve this issue, open your parpool with gpuDeviceCount workers, and no more.
0 件のコメント
Joss Knight
2018 年 2 月 8 日
編集済み: Joss Knight
2018 年 2 月 8 日
The CUDA runtime in the latest drivers appears to be allocating a huge amount of main memory when it is initialized on a Volta card. We are following this up with NVIDIA.
2 件のコメント
Joss Knight
2018 年 2 月 22 日
NVIDIA have indicated to us that this memory allocation size is expected, holding kernels and page tables. But we are still chasing them further.
The allocation on the Titan V occurs when the CUDA runtime is initialized, which happens when the device is selected. To avoid this, select your second device as the first GPU command you execute, i.e. gpuDevice(2).
参考
カテゴリ
Help Center および File Exchange で GPU Computing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!