Отчет о ходе выполнения функции CUDA в Python (Numba)Python

Программы на Python
Anonymous
Отчет о ходе выполнения функции CUDA в Python (Numba)

Сообщение Anonymous »

У меня есть давно работающая функция CUDA, и я хотел бы периодически сообщать о ее ходе.
Я пытаюсь использовать закрепленный массив вместе с потоками, как в https://towardsdatascience .com/cuda-by-numba-examples-7652412af1ee
Но даже если графический процессор загружен и значения необходимо изменить, сообщаемый прогресс всегда равен 0.import time
import numpy as np
from numba import cuda
import threading

@cuda.jit
def gpu_function(progress):
progress[0] = 17
for i in range(1000000000):
if i % 100000 == 0:
progress[0] = i // 1000

def monitor_progress(progress_gpu, progress_host, stream):
while True:
progress_gpu.copy_to_host(progress_host, stream=stream)
print(f"Progress: {progress_host[0]}")
time.sleep(1)

progress_host = np.zeros(1, dtype=np.int32)

with cuda.pinned(progress_host):
stream = cuda.stream()
progress_gpu = cuda.to_device(progress_host, stream=stream)

gpu_function[256, 1, stream](progress_gpu)

monitor_thread = threading.Thread(target=monitor_progress, args=(progress_gpu, progress_host, stream))
monitor_thread.start()

stream.synchronize()


Подробнее здесь: https://stackoverflow.com/questions/784 ... thon-numba

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