Как выделить память в памяти графического процессора с помощью pyOpenCL?

Я искал что-то похожее на malloc(), которое выделяло бы память. Я просто хочу, чтобы память была зарезервирована.

Я хочу заполнить X количество ГБ/МБ.

До сих пор мне удалось запросить доступную локальную память.

Как заполнить, скажем, на 80%?

В настоящее время приведенный ниже код выделяет место в системной памяти (ОЗУ).

import pyopencl as cl # OpenCL - GPU computing interface
from pyopencl import device_info 
import numpy as np
import time
import sys

# Hardware devices
platforms = cl.get_platforms()

# getting GPUs
my_gpu_devices = [platforms[0].get_devices(device_type=cl.device_type.GPU)[0]]
print(my_gpu_devices)

# Context set to GPU 0
ctx = cl.Context(devices = my_gpu_devices)

# Querying Local memory size
local_memory_size = my_gpu_devices[0].get_info(device_info.LOCAL_MEM_SIZE)

print("VRam size : ", local_memory_size)
# time.sleep(200)

flood_data = np.random.rand(256 ** 2).astype(np.int32)
print(sys.getsizeof(flood_data))

buf = cl.Buffer(ctx, 
                cl.mem_flags.READ_WRITE, 
                size = (local_memory_size - 1000), 
                hostbuf = None
)

queue = cl.CommandQueue(ctx)

for _ in range (0, 200000):
    cl.enqueue_fill_buffer(
                queue = queue, 
                mem = buf, 
                pattern = np.int32(0), 
                offset = 0, 
                size =  int(sys.getsizeof(np.int32) * 128)

    )

person Screx    schedule 03.05.2020    source источник
comment
Отвечает ли это на ваш вопрос? PyOpenCL: как создать локальный буфер памяти?   -  person Patol75    schedule 03.05.2020
comment
@ Patol75 Таким образом, выделение памяти фактически выполняется с помощью кода C. Но я понятия не имею, как с этим бороться.   -  person Screx    schedule 03.05.2020
comment
Думаю, лучший способ двигаться дальше — прочитать документ. Это может занять некоторое время, но оно того стоит.   -  person Patol75    schedule 03.05.2020