CUDA学习--内存处理之寄存器(2)

1. 寄存器

GPU上一个SM可以看成一个多线程的CPU核。一般CPU拥有二、四、八个核。但一个GPU却有N个SM核。但这里需要注意的是,所有的工作都是有SM上的SP(流处理器)处理的。每个核上SP数目不同,因此每个核支持的线程数目也会有很大的不同。事实上,一个GPU设备上的所有SM中活跃的线程数目通常数以万计

与CPU不同,GPU的每个SM(流多处理器)有上千个寄存器。CPU与GPU架构的一个主要区别就是CPU与GPU映射寄存器的方式。CPU通过使用寄存器重命名和栈来执行多线程。为了运行一个新任务,CPU需要进行上下文切换,将当前所有寄存器的状态保存到栈上,然后从栈中恢复当前需要执行的新线程上次的执行状态。这些操作需要花费上百个CPU时钟周期。如果在CPU上开启过多的线程,时间将主要花费在上下文的切换上。因此,如果在CPU上开启过多的线程,有效工作的吞吐量将会快速降低

然而GPU却恰恰相反。GPU利用多线程隐藏了内存获取与指令执行带来的延迟。GPU不使用寄存器重命名机制,而是致力于为每一个线程都分配一个真实的寄存器(毕竟每个SM有上千个)。因此,当需要上下文切换时,所需要的操作就是将指向当前寄存器组的选择器或指针更新,以指向下一个执行的线程束的寄存器组,开销几乎为零。从而可以看出,在GPU上开启过少的线程反而会因为等待内存事务使GPU处于闲置状态。(这里用到的线程束概念,即同时调度的一组线程,包含32个线程)。

每个SM能够调度若干个线程块。在SM层,线程块即若干个线程束的逻辑组。编译时会计算出每个内核线程需要的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装CUDA Toolkit 10.2,请按照以下步骤进行操作: 1. 首先,确保您的计算机上已经安装了适合的NVIDIA显卡驱动程序。您可以通过访问NVIDIA官方网站(https://www.nvidia.com/Download/index.aspx)来下载和安装最新的驱动程序。 2. 下载CUDA Toolkit 10.2安装程序。您可以在NVIDIA官方网站的CUDA下载页面(https://developer.nvidia.com/cuda-10.2-download-archive)上找到适合您系统的安装程序。请选择与您操作系统相对应的版本进行下载。 3. 运行下载的安装程序。按照安装向导的指示进行操作,接受许可协议并选择安装选项。您可以选择自定义安装,以选择安装的组件。 4. 在安装选项中,确保选择安装CUDA开发工具包和CUDA示例。您还可以选择安装CUDA代码示例和其他组件,以满足您的需求。 5. 在安装过程中,可能会提示您安装驱动程序或其他必需的软件组件。请根据需要进行操作,并按照安装向导的指示进行操作。 6. 完成安装后,您需要配置环境变量。在系统的环境变量中添加CUDA的安装路径,以便系统可以找到CUDA的相关文件。具体的步骤会因操作系统而异。例如,在Windows系统中,您可以在系统属性的高级选项中设置环境变量。 7. 安装完成后,您可以通过编写和编译CUDA程序来验证安装是否成功。您可以使用NVIDIA的CUDA示例程序来测试。这些示例程序位于安装目录的samples文件夹中。 请注意,安装CUDA Toolkit需要一些计算机知识和经验。如果您对此不熟悉,建议您寻求专业人士的帮助或参考官方文档以获取更详细的说明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值