- 2024-10-19深入浅出之cuda编程概念
CUDA(ComputeUnifiedDeviceArchitecture)是NVIDIA推出的一种用于通用并行计算的编程模型和编程接口。它允许开发者利用NVIDIAGPU的强大计算能力来加速应用程序。CUDA编程涉及使用CUDAC/C++或CUDAFortran等语言编写代码,这些代码可以在GPU上并行执行,从而显著提高计算性能。
- 2024-10-14Stanford CS149 -- Assignment 3: A Simple CUDA Renderer
作业描述及代码参见:CS149-asst3实验环境:WSL2;GeForceMX350;Cuda12.6第一部分:CUDA热身练习1:SAXPY实验结果:相比基于CPU的实现,性能明显下降。这是由于SAXPY属于I/O密集型任务,计算量较小,主要的时间耗费在数据的转移。第二部分:CUDA热身练习2:并行前缀和第三部分:简单
- 2024-09-03cuda编程[1]:一二三维网格和块的核函数
目录前言核函数一维二维三维结果分析前言所有的代码下载链接:code。以下代码展示了如何在CUDA中打印网格和线程的索引信息。代码包括一维、二维和三维的网格和块的设置,并定义了多个内核函数来输出当前的索引信息。核函数打印线程索引__global__voidprint_idx_kerne
- 2024-08-16NVIDIA CUDA 编程模型之Grid和Block
NVIDIACUDA编程模型允许灵活地配置grid和block,使程序能够在不同规模和结构上运行。CUDA中的grid可以是1、2或3维的,block也可以是1、2或3维的。这意味着存在多种可能的组合,每种组合都会影响最终线程的编号计算。下表展示了所有可能的grid和block组合,并描述了
- 2024-06-09CUDA编程学习笔记-02
CUDA代码高效计算策略高效公式✒️Math代表数学计算量,Memory代表每个线程的内存
- 2023-10-25cuda vectorized实现矩阵转置
使用了共享内存和向量化传输,目前为止效果最好的一个实现__global__voidtransposeSmemVec(float*input,float*output,constintX,constintY){__shared__floatsmem[32*4*32];unsignedintix=4*(blockDim.x*blockIdx.x+threadIdx.x);
- 2023-10-08CUDA C编程权威指南:2.1-CUDA编程模型
本文主要通过例子介绍了CUDA异构编程模型,需要说明的是Grid、Block和Thread都是逻辑结构,不是物理结构。实现例子代码参考文献[2],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。1.Grid、Block和Thread间的关系 GPU中最重要的2种内存是全局
- 2023-09-03CUDA 线程ID 计算方式
threadID的计算方式,简单来说很像小学学的除法公式,本文转载自同学一篇博客;并进行简单修改;被除数=除数*商+余数用公式表示:$$线程Id=blockId*blockSize+threadId$$blockId:当前block在grid中的坐标(可能是1维到3维)blockSize:block的大小,描述其中含有多少个thr
- 2023-08-07cuda系列详细教程
随着人工智能的发展与人才的内卷,很多企业已将深度学习算法的C++部署能力作为基本技能之一。面对诸多arm相关且资源有限的设备,往往想更好的提速,满足更高时效性,必将更多类似矩阵相关运算交给CUDA处理。同时,面对市场诸多教程与诸多博客岑子不起的教程或高昂教程费用,使读者(特别是