CUDA编程模型中CGA是什么?它与CTA的关系解析请求
CGA的定义及与CTA的关系
CGA的定义
CGA是Cooperative Grid Array(合作网格数组)的缩写,是CUDA架构里比CTA更高层级的线程组织单元。简单来说,它就是你调用CUDA核函数时指定的整个grid——每次启动核函数,就对应创建一个CGA,它是由多个CTA组成的完整计算任务集合。
CGA与CTA的关系
- 层级从属关系:CGA是CTA的上层容器,一个CGA包含若干个CTA,具体数量由核函数启动时的
gridDim参数决定(比如dim3 grid(200, 5)就代表这个CGA里有1000个CTA)。 - 资源隔离与共享:每个CTA有自己独立的共享内存、寄存器组和执行上下文,CTA之间默认不能直接访问彼此的私有资源;而CGA层面会统一管理全局内存、核函数参数等全局资源,同一个CGA内的所有CTA都能访问这些全局资源。
- 调度与执行逻辑:GPU硬件会根据SM(流式多处理器)的空闲资源,分批把CGA里的CTA调度到SM上执行。同一个CGA内的CTA都是为了完成同一个核函数的计算任务,逻辑上对应整个计算任务的不同并行分片,最终共同完成核函数定义的计算目标。
内容的提问来源于stack exchange,提问作者hash join
相关产品推荐
相关产品推荐

