[2016/06/25] CUDA矩阵乘法 简单实现

本文介绍了如何使用CUDA进行矩阵乘法的简单实现,包括main函数、CPU函数和GPU函数的详细步骤。
摘要由CSDN通过智能技术生成

0 随便说两句

嗯,因为项目需要,所以学CUDA。感觉对之后的计算机图形学会稍微有点帮助?如果毕业要换电脑,我一定要记得买一个有Nvidia显卡的电脑,否则这CUDA有些算是白学了哈哈。
刚接触,感觉还是挺难的,主要是一些概念没有理清。这个矩阵乘法,我也算是迷迷糊糊弄懂,特别是最后计算index的部分,实在是。。。线性代数、数学、空间想象能力真的不管在哪个领域都重要到不行啊!以后如果有孩子了一定要好好教育(呵呵。

真的是懵逼了半个星期,今晚终于看懂了点。分享下我觉得入门CUDA(真的是入门!入门)的一些步骤和概念吧。

0  先下好各种驱动程序,安装包,然后在VS里面跑Sample
1 知道CPU,GPU是什么东西,还有一些关键词 host, device, global, shared 等。
2 知道三个基本过程, host到device,device跑核心函数,device到host,已经这三个过程所对应的函数、参数的意义、用法
3 仔细参透grid block 和 thread之间的关系,熟记并理解blockDim.x/y, blockIdx.x/y, threadIdx.x/y各代表什么含义,注意它跟数组的下标是有区别的,我一开始真的想了很久,因为我把这个索引当成是数组下标,就怎么都不明白它为什么是这样表达的。(入门就先别想三维了吧。。。
4 第一个例子:实现向量加法,并且修改device核心函数中的num_blocks, num_threads,以作为理解(3)的参考。
5 第二个例子:实现矩阵乘法,对就是我现在这步。本来跑完了向量加法的你可能会觉得哈哈,挺简单。然后这个矩阵的优化算法(我是指优化算法!不是指每个线程算一个矩阵元素这种简单的。。。不过你可以先实现简单的,再使用优化的。。)的各种Index就把我弄晕了。这不是编程的问题,这就是数学。。。数学不好是硬伤啊!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值