CUDA从入门到精通
本教程从简单的程序示例到详细的运行机制,为读者奉献一个全新的CUDA学习教程
nudt_qxx
这个作者很懒,什么都没留下…
展开
-
cuda从入门到精通(六)共享内存和循环分块实现CUDA矩阵乘
然后,我们可以使用另一个线程块来将这些子矩阵的结果相加,得到最终的矩阵乘法结果。例如,我们可以使用更复杂的内存访问模式来减少内存访问的冲突,或者使用更高效的算法来计算子矩阵的结果。在矩阵乘法中,我们可以将大的矩阵分解为一系列小的子矩阵,并分别对每个子矩阵进行乘法运算。在每个循环迭代中,我们首先将子矩阵A和B的数据加载到共享内存中,然后计算子矩阵的结果,并将结果写回全局内存。的子矩阵乘法,其中t是分块的大小。然后,我们可以使用多个线程块并行计算这些子矩阵的结果,最后将结果相加得到最终的矩阵乘法结果。原创 2024-03-19 13:19:02 · 1663 阅读 · 0 评论 -
cuda从入门到精通(五)CUDA实现AI模型中的softmax
NVIDIA提供了许多CUDA库,如cuBLAS和cuDNN,这些库为许多常见的线性代数运算提供了高效的实现。例如,在上述示例中,我们在GPU上分配了额外的内存来存储输入和输出的副本。为了避免这种情况,我们可以从每个输入值中减去最大值,这样可以确保所有的输入值都在可接受的范围内。:了解你正在使用的硬件的特性,并根据这些特性进行优化。例如,不同的GPU可能有不同的内存带宽和计算能力,这可能会影响你的代码的性能。这些只是优化CUDA代码的一些基本建议,具体的优化策略可能会根据你的应用和硬件的特性而有所不同。原创 2024-03-19 13:08:39 · 996 阅读 · 0 评论 -
libnvjpeg各版本下载
https://developer.download.nvidia.com/compute/redist/libnvjpeg原创 2023-07-24 18:21:48 · 443 阅读 · 0 评论 -
cuda从入门到精通(四)之并行计算入门
知道了CUDA编程基础,我们就来个简单的实战:利用CUDA编程实现两个向量的加法。在实现之前,先简单介绍一下CUDA编程中内存管理API。首先是在device上分配内存的cudaMalloc函数。cudaError_t cudaMalloc(void** devPtr, size_t size);这个函数和C语言中的malloc类似,但是在device上申请一定字节大小的显存,其中devPt...原创 2019-06-13 17:54:34 · 3040 阅读 · 3 评论 -
cuda从入门到精通(三)之核函数和参数配置
这里继续讲上一节cuda从入门到精通(二)之函数关键字的一个遗留问题:__global__修饰函数中的<<<1,1>>>到底是什么。原创 2019-06-13 16:15:06 · 14510 阅读 · 9 评论 -
cuda从入门到精通(二)之函数关键字
本文系转载,出处:浅析GPU计算——cuda编程CUDA编程模型基础在给出CUDA的编程实例之前,这里先对CUDA编程模型中的一些概念及基础知识做个简单介绍。CUDA编程模型是一个异构模型,需要CPU和GPU协同工作。在CUDA中,host和device是两个重要的概念,我们用host指代CPU及其内存,而用device指代GPU及其内存。CUDA程序中既包含host程序,又包含device程...转载 2019-06-13 16:08:02 · 2835 阅读 · 0 评论 -
cuda从入门到精通(一)之基本概念
开始学习cuda,当然刚开始应该讲环境配置,不过这里还是默认读者已经完成了CUDA环境配置,在ubuntu环境下开发。CPU和GPUCPU的全称是Central Processing Unit,而GPU的全称是Graphics Processing Unit。在命名上。这两种器件相同点是它们都是Processing Unit——处理单元;不同点是CPU是“核心的”,而GPU是用于“图像”处理的...原创 2019-06-13 10:27:26 · 1595 阅读 · 2 评论