Я только что установил новые версии Cupy и Cuda, и я заметил, что время выполнения для некоторого кода, которое я использовал для резкого увеличения. Время выполнения на графическом процессоре намного длиннее, чем на процессоре. является примером: < /p>
import cupy as cp
from cupyx.profiler import benchmark
xi_tr = cp.random.random( size = (20,5) , dtype = 'float32')
xi_te = cp.random.random( size = (20,5) , dtype = 'float32')
n_tr_samples = xi_te.shape[0]
def test_func( tr , te , n_samples):
inputs_3d = cp.tile( te , (n_samples , 1 , 1))
tr_3d = tr[: , cp.newaxis , :]
cl_dif = (tr_3d - inputs_3d)
tot_d = (cl_dif * cl_dif).sum(axis=2)
return tot_d
result = benchmark( test_func , args = ( xi_tr , xi_te , n_tr_samples ) , n_repeat = 10)
print( result )
test_func :
CPU: 139.340 us +/- 24.145 (min: 127.600 / max: 210.800) us
GPU-0: 260.102 us +/- 49.430 (min: 238.592 / max: 407.552) us
cp.cuda.is_available()
Out[96]: True
cp.cuda.runtime.getDeviceCount()
Out[97]: 1
cp.show_config()
OS : Windows-10-10.0.19045-SP0
Python Version : 3.12.3
CuPy Version : 13.3.0
CuPy Platform : NVIDIA CUDA
NumPy Version : 1.26.4
SciPy Version : 1.13.1
Cython Build Version : 0.29.37
Cython Runtime Version : None
CUDA Root : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
nvcc PATH : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin\nvcc.EXE
CUDA Build Version : 12060
CUDA Driver Version : 12080
CUDA Runtime Version : 12060 (linked to CuPy) / RuntimeError("CuPy failed to load cudart64_12.dll: FileNotFoundError: Could not find module 'cudart64_12.dll' (or one of its dependencies). Try using the full path with constructor syntax.") (locally installed)
CUDA Extra Include Dirs : ['C:\\ProgramData\\anaconda3\\Library\\include']
cuBLAS Version : (available)
cuFFT Version : 11303
cuRAND Version : 10309
cuSOLVER Version : (11, 7, 2)
cuSPARSE Version : (available)
NVRTC Version : (12, 8)
Thrust Version : 200600
CUB Build Version : 200600
Jitify Build Version :
cuDNN Build Version : None
cuDNN Version : None
NCCL Build Version : None
NCCL Runtime Version : None
cuTENSOR Version : None
cuSPARSELt Build Version : None
Device 0 Name : NVIDIA GeForce GTX 1080 Ti
Device 0 Compute Capability : 61
Device 0 PCI Bus ID : 0000:02:00.0
< /code>
Дополнительная информация:
Я использовал Cuda v11.2 и Cupy v12.3 до.
Я не оценивал графический процессор по сравнению с ЦП, чем. Просто время выполнения с использованием Cupy было в 5-10 раз ниже, чем использование Numpy, и в целом было в порядке. Но после этого времени выполнения обновления резко увеличилось> 10 раз. < /P>
Размер массивов, которые я обычно использую, составляет около (5000, 30).
в примере кода я положил Небольшие числа только для иллюстрации.
Вот результаты для (5000, 30):
test_func:
CPU: 222.990 US +/- 25,716 (мин: 169,800 /макс.: 258.000 ) США
gpu-0: 210689.948 US +/- 22235.564 (мин: 201992.447 /max: 277377.014) US < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ution-time
Почему время выполнения графических процессоров намного выше, чем время выполнения процессора? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение