You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SciPy生成Sobol序列时在完成25%后停滞的问题求助

SciPy生成Sobol序列时在完成25%后停滞的问题求助

我正在用Sobol序列做大规模拟蒙特卡洛(Quasi Monte Carlo)模拟,需要生成超过2**30个样本。根据SciPy的文档,Sobol生成器默认上限是2**30,但修改bits参数可以将上限提升至最大2**64——这完全能满足我的需求。

我按照文档设置了sampler = qmc.Sobol(d=2, scramble=True, bits=64),但还是遇到了异常:程序刚好运行到25%的进度就毫无征兆地停止了,没有抛出任何错误提示。我监控了GPU和内存使用情况,可以确定不是内存溢出导致的;另外我尝试过把生成器放到循环内每次重新初始化,程序能正常运行,但这样会破坏QMC序列的核心特性,显然不是可行的解决方案。

以下是我的最小可复现代码:

from scipy.stats import qmc
from tqdm import tqdm

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)
        # 此处省略具体计算逻辑

if __name__ == "__main__":
    samples = 2 ** 34  # 触发bug需要样本数大于10**10且为2的幂,比如2**34
    a_values = [1.1, 1.2, 1.3]  # 示例参数
    for a in tqdm(a_values):
        run_simulation_batch_cupy_QMC(samples, a)

预期与实际结果

  • 预期:程序能完整生成所有样本并完成模拟流程
  • 实际:GPU计算在进度刚到25%时直接停止,无报错、无内存溢出迹象

我需要在不破坏Sobol序列QMC特性的前提下,解决大规模样本生成停滞的问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 12:40:30