【问题标题】:CUDA Cooperative GroupsCUDA 合作团体
【发布时间】:2018-06-18 19:22:52
【问题描述】:

我正在使用 Pascal GPU 来同步所有块,而无需在内核中执行多次传递。但是,我不确定我是否理解得很好。就我而言,我总共要处理 117000 个元素。使用 512 个线程的块大小,它需要大约 228 个块。当我尝试运行内核时,它说我的块数很高:

CUDA error at ../SW/SmithWatermanGPU.cu:122 code=82(cudaErrorCooperativeLaunchTooLarge) "cudaLaunchCooperativeKernel((void*)SWProc, blocks, NUM_THREADS_BLOCK, params)"

我了解我无法使用合作组加载所有这些块。对吗?

非常感谢。

【问题讨论】:

    标签: cuda gpu nvidia


    【解决方案1】:

    我了解我无法使用协作加载所有这些块 团体。对吗?

    是的。

    您必须遵守占用限制,合作发射才能成功。这在documentation 中有详细讨论。每个块有 512 个线程,每个 SM 最多只能有 4 个块,而我所知道的最大的 Pascal GPU 有 56 个 SM,这意味着上限为 224 个块,并且可能会更少,具体取决于您的 GPU 和内核资源需求。

    【讨论】:

    • 据我回忆,cc 6.0 的 SMX 更小,比如 56。
    • @FlorentDUGUET:确实你是对的。我会修复答案。
    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 2018-04-19
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 2020-03-25
    相关资源
    最近更新 更多