Также говорит, что путем изменения битов аргументации должно быть возможно поднять предел до максимия 2 ** 64 (этого достаточно для меня). < /P>
Код: Выделить всё
sampler = qmc.Sobol(d=2, scramble=True, bits=64)
Однако я все еще сталкиваюсь с той же ошибкой, ровно на 25 процентов функции, все останавливается без сообщения об ошибке. Я уверен, что проблема заключается в генераторе, потому что я пытался перемещать его в цикл FOR, и она сработала, однако каждый раз, когда я думаю, может вызвать проблемы с математикой со свойствами QMC.import cupy as cp
from scipy.stats import qmc
from tqdm import tqdm
import os
def run_simulation_batch_cupy_QMC(samples, a):
batch_size = 2 ** 27
n_batches = samples // batch_size
sampler = qmc.Sobol(d=2, scramble=True, bits=64)
for i in tqdm(range(n_batches)):
qmc_samples = sampler.random(n=batch_size)
#Here there is some computation I cut off
cuda_bin_path = r"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\bin"
os.add_dll_directory(cuda_bin_path)
if __name__ == "__main__":
samples = 2 ** 34 #Samples must be, to get the bug, greater than 10 ** 10 and a power of 2 so 2**34
a_values = [1.1, 1.2, 1.3] #Example
for a in tqdm(a_values):
run_simulation_batch_cupy_QMC(samples, a)
< /code>
Я ожидал, что функция завершит генерацию. Мониторинг графического процессора, и я могу сказать, что я не получаю переполнения памяти. Графический процессор просто перестает расчет точно при 25 %.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -25-of-the