cuda中的thread、block、grid
发布时间:2024年01月17日
cuda编程本质就是进行并行计算,就是同时用多个计算资源解决一个计算问题。
- host:cpu和内存(host memory)
- device: gpu和显存(device memory)
软件编程中的概念
- thread:线程,GPU中最小的执行单元。在并行计算中,每个线程都执行相同的指令,多个thread同时进行计算。
- block:多个thread组成一个block。同一个block内的thread可以同步(synchronize),也可以使用shared memory(GPU中的共享内存,下文会讲到)进行通信。block可以是一维、二维或者三维。
- grid:多个block组成一个grid。grid可以是一维、二维或者三维。
下图中,有两个grid,每个grid中有4个block,每个block又有16个thread。
GPU物理概念
下图左边是软件中的概念,右边则是与之对应的物理概念。
- cuda core,或者叫SP(Streaming Processor)流处理器。从上图可以看出,SP就是thread的物理映射。
- SM(Streaming Multiprocessor),里面包括多个cuda core(具体的数量与GPU架构有关)。里面还包括SFU(特殊运算单元)、shared memory(共享内存)、register、warp scheduler(线程束调度器)等。
在上图中,block和SM是对应的,但实际执行时,一个SM可以存放多个block。 - GPU,多个SM就组成了整个GPU。
文章来源:https://blog.csdn.net/Tulip_Alice/article/details/135632121
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!