Почему время выполнения графических процессоров намного выше, чем время выполнения процессора?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему время выполнения графических процессоров намного выше, чем время выполнения процессора?

Сообщение Anonymous »

Я только что установил новые версии 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 ) US

gpu-0: 210689.948 US +/- 22235.564 (мин: 2019992.447 /max: 277377.014) США < /p>
Дополнительный вопрос.
Когда я Запустите образец кода. Нет сообщений об ошибках.
Однако выход CP.Cuda.Runtime.getDeviceCount () содержит: < /p>
версия выполнения Cuda:
12060 ( Связано с Cupy) / runtimeerror («Cupy не удалось загрузить Cudart64_12.dll: filenotfounderror: не удалось найти модуль 'cudart64_12.dll' (или одна из его зависимости). Попробуйте использовать полный путь с синтаксисом конструктора. локально установлен)
Значит ли это, что есть ошибка, которая предотвращает работу Cupy на GPU?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ution-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»