
cuda编程指南
文章平均质量分 84
本栏意在完整记录cuda的内容以及代码复现
小马敲马
这个作者很懒,什么都没留下…
展开
-
深度神经网络(DNN)编译器原理简介
*编译器(compiler)**在计算机编译代码的时候往往指一种程序,会将某种编程语言的源代码(原始代码)转换成另一种编程语言(目标语言),转换的过程中进行的程序优化就是编译优化。Fig. 1 LLVM编译过程(例如cpp编程IR中间表示,然后中端优化,最后给后端编译给机器执行)随着xxxx,现在的model要部署在各类计算设备和不同的硬件架构上(x86, ARM, RISC-V);实际部署对性能需要更多要求,性能的优化能够为算法提供更大的空间。原创 2025-02-26 23:17:38 · 1192 阅读 · 0 评论 -
windows的vscode配置cuda与TensoRT编译环境-wsl2
点击这里,不用wsl的缺点显然,不可以使用cuda gdb来调试代码,每次都是编译成可执行文件一遍遍测试代码十分累,于是这篇文章诞生。点击这里,如果觉得有帮助,记得点哥star。原创 2025-01-03 11:39:55 · 931 阅读 · 0 评论 -
cuda编程[1]:一二三维网格和块的核函数
code。以下代码展示了如何在 CUDA 中打印网格和线程的索引信息。代码包括一维、二维和三维的网格和块的设置,并定义了多个内核函数来输出当前的索引信息。原创 2024-09-03 15:53:30 · 1164 阅读 · 0 评论 -
cuda编程[4]:实现矩阵乘法
code。原创 2024-08-29 11:54:24 · 475 阅读 · 0 评论 -
cuda编程[3]:测试CPU,GPU预热,warp无分化和warp有分化
code,在code/test_warp下能看到所有代码,包括.vscode,CMakeLists.txt,和.nsys-rep文件。所有代码和性能分析文件经过测试,可以运行。原创 2024-08-23 11:59:17 · 827 阅读 · 0 评论 -
cuda编程[2]:怎么用2维网格2维块计算矩阵加法
一个线程在网格中的块的索引是ix = threadIdx.x + blockIdx.x * blockDim.x和iy = threadIdx.y + blockIdx.y * blockDim.y。//查看当前可用GPU设备数 并将可用device设置为0。这样就可以输出结果。原创 2024-07-25 22:07:31 · 947 阅读 · 1 评论 -
cuda编程[0]:怎么调用API看自己的架构并计算核心数量
,这里的device_id就是你的显卡id,默认是0,如果是多卡就是0,1,2这样。看上面的运行图可以看到有一个计算能力结果是8.9,这个是通过device_prop.major和device_prop.minor得到参数,所以我现在这个4060显卡的主次版本号分别是8和9。可以看到这个API的修饰符有__host__和__cudaError_t,意思是这个API在主机中调用,且错误返回的类型是__cudaError_t。可以看到我的4060显卡是安培架构,有3072个cuda核心。这样就可以输出结果。原创 2024-07-25 14:57:48 · 709 阅读 · 0 评论 -
cuda C++ 编程指南 第六章 编程接口(上)
英伟达 《CUDA C++ Programming Guide》 官方文档学习记录笔记 版本【Release 12.4】出版时间【 Apr 22, 2024】 持续更新中。。。。。。原创 2024-07-12 11:07:47 · 881 阅读 · 0 评论 -
cuda C++ 编程指南 第五章 编程模型(下)
基于 NVIDIA Hopper GPU 架构的设备的主要修订数为 9,基于 NVIDIA Ampere GPU 架构的设备为 8,基于 Volta 架构的设备为 7,基于 Pascal 架构的设备为 6,基于 Maxwell 架构的设备为 5,基于开普勒架构的设备为 3。图灵是计算能力为7.5的设备的架构,是基于Volta架构的增量更新。每个线程都有私有的本地内存,每个线程块对块的所有线程都有可见的共享内存,每个线程块集群中的线程块可以对彼此的共享内存执行读取、写入和同步操作。原创 2024-06-09 20:12:34 · 793 阅读 · 0 评论 -
windows的vscode配置cuda编译环境
windows的vscode配置cuda编码环境。原创 2024-05-23 17:57:25 · 4857 阅读 · 0 评论 -
cuda C++ 编程指南 第五章 编程模型(上)
1.定义:CUDA C++通过定义C++函数拓展C++,称为内核(kernels)。调用该内核时,由N个不同的cuda线程并行执行N次。2.__global__来定义内核,来执行配置。3.执行时每个线程(thread)有一个单独ID,该ID可以由内置变量再内核内访问。原创 2024-06-05 19:06:12 · 592 阅读 · 0 评论