Я искал что-то похожее на 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)
)