CUDA
文章平均质量分 89
Overboom
这个作者很懒,什么都没留下…
展开
-
[CUDA编程] --- CUDA内存模型
用表格进行总结:设备存储器的重要特征下图表达的更加直观一些。Local, Global, Contant, Texture为片外DRAM,其中Global, Constant, texture内存在Host端代码声明,所有线程可见。SM拥有私有的Registers和Shared Memory(其实还有SM私有的L1 cache以及共有的L2 cache,下一篇会详细说明),Constant和Texture内存有专有的Caches, 这些在片上。原创 2024-08-25 12:46:12 · 1085 阅读 · 0 评论 -
[CUDA编程] --- cuda线程模型
threadIdx是一个uint3类型,表示一个线程的索引。blockIdx是一个uint3类型,表示一个线程块的索引,一个线程块中通常有多个线程。blockDim是一个dim3类型,表示线程块的大小。gridDim是一个dim3类型,表示网格的大小,一个网格中通常有多个线程块。原创 2024-08-25 12:45:40 · 842 阅读 · 0 评论 -
[CUDA编程] --- CUDA计时
计时通常分为两种情况:1)直接得到接口函数的时间,一般用于得到加速比;2)获得接口函数内核函数、内存拷贝函数等所耗时间,一般用于优化代码时。情况(1)方法有两种,CPU计时函数和GPU计时函数。情况(2)有三种工具nsight,nvvp,nvprof本博客会详细介绍情况(1)的两种方法;情况(2)nsight不会用,简单介绍一下nvvp和nvprof的用法。原创 2024-08-25 12:45:14 · 753 阅读 · 0 评论 -
[CUDA编程] --- GPU设备信息获取与错误检查
拿到一台新机器,如何确定GPU的一些环境参数。原创 2024-08-25 12:44:49 · 844 阅读 · 0 评论 -
[CUDA编程] --- nvcc编译过程和GPU计算能力
nvcc编译流程具体可参看官方文档:nvcc编译过程:https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html下面结合这张图进行具体讲解NVCC的编译过程分为离线编译和即时编译两部分组成:离线编译(绿色虚线框内):CUDA源程序(即xxx.cu文件)在编译前的预处理会被分为主机端代码和设备段代码(即图中的左右分支):1.如图右分支:在设备端代码会被编译成ptx文件(可以看作是用于设备端的汇编文件)或是直接可运行的二进制文件xx原创 2024-08-25 12:44:21 · 745 阅读 · 0 评论 -
[CUDA编程] --- 函数关键字介绍
CUDA编程模型是一个ie异构模型,需要CPU和GPU协同工作。在CUDA中,host和device是两个重要的概念,我们用host指代CPU及其内存,用device指代GPU及其内存。CUDA程序中既包含host程序,又包含device程序,他们分别在CPU和GPU运行。同时host和device之间可以通信,这样他们之间可以进行数据拷贝。原创 2024-08-25 12:43:30 · 260 阅读 · 0 评论