
CUDA
vbskj
这个作者很懒,什么都没留下…
展开
-
如何利用GPU(CUDA)加速Matlab程序?
在Matlab中调用GPU的CUDA API进行并行加速,主要有两种途径:1)对现有Matlab代码的简单改写,调用Matlab中支持CUDA的函数进行加速。2)将C语言的CUDA函数封装成库,在Matlab中进行调用。前者简单方便,效率低;后者效率高,稍微麻烦。 一、matlab中直接的gpu加速计算matlab中直接做GPU计算分为三个步骤。(1)数据的初始...原创 2020-01-21 11:31:30 · 34677 阅读 · 6 评论 -
基于CUDA的光线跟踪算法 .
光线跟踪是目前常用的主流绘制技术之一,由于它能方便地模拟生成复杂的光照效果,生成高质量的图像,在很多领域得到了广泛的应用,如真实感绘制,虚拟现实,可视化,计算机动画等。但光线跟踪算法的计算开销较大,妨碍了其应用效率。光线跟踪渲染的主要运算操作耗费在光线与场景求交的过程中,为此,为了加快这一计算过程,人们研究了大量的技术来加快求交操作。其中,通过建立一定的空间组织结构来加速求交计算机取得了很大的进展转载 2012-11-05 11:39:29 · 2328 阅读 · 0 评论 -
三维模型体素化
体素化(Voxelization)是将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。表示模型的空间体素跟表示图像的二维像素比较相似,只不过从二维的点扩展到三维的立方体单元,而且基于体素的三维模型有诸多应用。由于使用的需要,需对模型进行体素化操作,这里采用了一种简单但却有效的操作方法。首先设定模型体素化的分辨率,假设为 N转载 2012-11-05 12:22:42 · 5634 阅读 · 2 评论 -
VS2005+CUDA4.0+wizard v2.9下CUDA动态库、静态库的开发过程
参考了开勇的dll过程,其中有一些细节的地方给予说明,原文中没有提及;此外,提供的src可能是老版本的,在新环境下无法运行。 1. 创建DLL 1)用开勇的Wizardv2.9 可以创建一个DLL项目工程:2)选择DLL项目,然后可以看到下面的项目文件结构: 其中sampe_cu.h文件为头文件,stdafx.h和stdafx.cpp是windows的加载的相关文件,这原创 2012-11-07 12:30:14 · 2114 阅读 · 0 评论 -
英伟达最新旗舰显卡K20及K10,可达5TFlops
在GTC 2012大会上,NVIDIA老总黄仁勋公布了新一代Tesla加速卡的详情,不过此次发布的Tesla显卡算是双胞胎,一款是基于双芯GK104架构的Tesla K10,另外一款则使用了真正的新架构,基于GK110核心的Tesla K20。K10和K20的特性有所不同,重点也不一样 首先来看K10,它的物理外观与GTX 690显卡没什么区别,但是NVIDI转载 2012-11-18 20:02:40 · 4417 阅读 · 0 评论 -
Intel众核架构芯片首秀 单颗破万亿次计算
除了介绍Xeon E5系列,Intel今天还首次展示了基于众核心(MIC)架构的新型协处理器“Knights Corner”,根据DGEMM测试其双精度浮点性能已经超过一万亿次每秒(1TFlops),这也是历史上第一次做到这一点的处理器芯片。相比之下,目前最强大的专用并行加速器是NVIDIA Tesla M2090,双精度浮点峰值性能665GFlops(6650亿次每秒),大大低于Inte转载 2012-11-19 12:59:42 · 968 阅读 · 0 评论 -
Intel MIC 没有免费的午餐
最近有关 Intel 即将问世的众核 加速器--MIC的新闻报道和业内反应很有意思。 似乎跟英伟达和 AMD一样,Intel 最终也得出结论: 要解决高性能计算日益增长的功耗限制问题,混合型架构是正确的方法。 虽然我认同这一观点,但是围绕 MIC 芯片编程问题展开的一些讨论让我绞尽脑汁思索,尤其是这种看法: “因为 MIC 运行的是 x86 指令集,所以无需更改现有代码,移植转载 2012-11-19 13:00:25 · 1288 阅读 · 0 评论 -
超微7046GT+Redhat Enterprise 6.1+CUDA5.0的安装说明
其实,在Linux服务器下面配置CUDA,本没有什么可说的,学生捣鼓了一天没捣鼓出来,我还以为是Redhat AS6.1的问题呢,早上过来重新配置,成功解决,其中有这样几个小问题。1、超微准系统7046GT的驱动 记得5年前,S1070时代,当时超微的准系统用的网卡模块驱动不兼容,当时的AS4.6认不出来,重新编译内核、插入模块,真是麻烦。现在AS6.1对超微的驱动支持挺好,除了C2原创 2013-04-30 09:56:54 · 1510 阅读 · 0 评论 -
LInux CUDA环境配置
1.安装toolkit(1)cd /home/CUDA_train/software/cuda4.1(2)./cudatoolkit_4.1.28_linux_64_rhel6.x.run指定安装目录(3)配置cuda toolkit环境变量(a)vim ~/.bashrc(b)添加如下行,用于添加cuda bin的路径到环境变量PATHexport PATH=$PAT转载 2013-12-21 11:02:26 · 21560 阅读 · 0 评论 -
CUDA入门的学习资料
一、初步整理了7份文档,作为入门使用最好。下载地址如下(永久有效): http://pan.baidu.com/s/1gdljMcN二、学习顺序Step1 : 学习Program Guide 链接中提供了4.0版本的中英文,以及2.0版本的中文版,可以首先学习CUDA的基本语法。Step2:CUDA 函数手册 链接中提供原创 2015-09-01 12:28:34 · 1079 阅读 · 0 评论 -
CUDA5.5+vs2010 环境配置
目前版本的cuda是很方便的,它的一个安装里面包括了Toolkit`SDK`document`Nsight等等,而不用你自己去挨个安装,这样也避免了版本的不同步问题。1 cuda5.5的下载地址,官方网站即可: https://developer.nvidia.com/cuda-downloads 在里面选择你所对应的电脑版本即可。2 VS2010这个没什么转载 2014-05-10 07:58:59 · 5042 阅读 · 3 评论 -
查看GPU实时工作状态的命令
直接输入命令:nvidia-smi具体如下所示:重要的参数主要是温度、内存使用、GPU占有率,具体如下红框所示。原创 2016-08-12 18:35:40 · 54870 阅读 · 0 评论 -
CUDA Dll的开发流程
下载了例子,运行有问题,所以把openhero的文章找出来,重新做一遍。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 前言:很久没写CUDA相关的文章了,其实也不是忙,只是零碎的事情比较多,不能抽出完整的时间写一些东西,在http://blog.youkuaiyun.com/openhero 上写本来想写一些列CUD转载 2012-11-03 09:56:51 · 964 阅读 · 0 评论 -
如何得到GPU的运行状态,这个找了好久
现在主流的显卡有两种,一类是Nvidia的GPU,一种是AMD的GPU。很多人都在做GPU的时候,都想知道GPU的特性,想知道使用时候的状态,有问题,频率,内存使用情况,占有率,很多人问道了,是否可以使用系统底层的API得到?其实系统给的API并不完善,经常得不到完全的信息。--------------------------------------------------------转载 2012-11-03 09:50:11 · 14082 阅读 · 0 评论 -
Tesla 优化方法
CUDA优化的最终目的是:在最短的时间内,在允许的误差范围内完成给定的计算任务。在这里,“最短的时间”是指整个程序运行的时间,更侧重于计算的吞吐量,而不是单个数据的延迟。在开始考虑使用GPU和CPU协同计算之前,应该先粗略的评估使用CUDA是否能达到预想的效果,包括以下几个方面: 精度:目前GPU的单精度性能要远远超过双精度性能,整数乘法、求模、求余等运算的指令吞吐量也较为有限。在科学计算中原创 2010-02-24 21:24:00 · 835 阅读 · 0 评论 -
windows 下cuda的配置
VS2005及以上版本支持CUDA的Geforce 8x/9x/1xx/2xx/3xx/4xx系列显卡,或MCP7x,ION芯片组安装步骤为:1.获取最新版本的driver, CUDA toolkit, CUDA SDK。无论显卡的CUDA计算能力如何,始终应该使用最新版本的驱动和开发工具。driver 和toolkit/SDK的版本应该与操作系统匹配。2. 依次安装driver,转载 2010-04-09 16:29:00 · 1832 阅读 · 0 评论 -
cuda的dll开发流程
<br />前言:很久没写CUDA相关的文章了,其实也不是忙,只是零碎的事情比较多,不能抽出完整的时间写一些东西,在http://blog.youkuaiyun.com/openhero 上写本来想写一些列CUDA编程的文章,不过现在看来,很多朋友还是只是处在开发的初级阶段,一些基本的编程环节还需要讲解一下,其实像lib编程,dll编程,都不是CUDA的内容,这个只是windows,linux系统编程的内容,只要有时间,好好静下心来做几个项目就可以明白很多,而且网上就可以找到很多资料。 <br />正文:CUDA的DL转载 2010-10-24 12:37:00 · 1432 阅读 · 0 评论 -
window下matlab调用cuda的开发流程
这两天抽点时间研究matlab调用cuda程序的问题,发现网上这方面的资料比较少,而且nvidia提供的白皮书描述的不够详尽,因此对于开发流程进行总结,希望大家有用。 总的来说,matlab中调用cuda程序有两种方法,第一是利用开勇的cuda wizard创建cuda程序的dll,然后结合matlab的mex编译器在matlab中进行调用;第二种是根据白皮书中所写,将cuda程写成标准的mex文件格式,然后利用mex编译器生成二进制代码,在matlab中进行调用。两种方法生成的都是以.mex原创 2010-10-24 17:08:00 · 9770 阅读 · 4 评论 -
2010和Nsight的安装
VS2010中安装配置Parallel Nsight 2.0公司,完美,下载地址, NvidiaNvidia公司推出了 Parallel Nsight 2.0 RChttp://parallelnsight.nvidia.com/% ~) z$ u' m: ]& ^1 \* K9 ` 完美支持VS2010和VS2008SP1,支持CUDA转载 2011-12-05 10:38:18 · 2074 阅读 · 0 评论 -
CUDA程序从Linux到Windows的移植
1.如果用到多GPU线程可以参考“MonteCarloMultiGPU”,其实只需要里面包含头文件即可识别cutStartThread等相关函数和数据定义。2.如果用到原子操作可以参考“simpleAtomicIntrinsics”,只需要工程里不包含cutil、shril等即可;3.如果用到CUFFT,可以参考“OCEAN FFT”,需要添加“cufft.h”头文件,连接器中增加"cuf原创 2012-03-17 13:18:25 · 2206 阅读 · 0 评论 -
cuda的网络资源
http://hpcbbs.it168.com/forum.php?mod=forumdisplay&fid=90&page=1http://cuda.it168.com/慢慢整理吧原创 2012-03-20 10:52:41 · 1016 阅读 · 0 评论 -
几点GPU的light
1. FFT可以自己定制,根据不同的规模,自己改写。下一代的cufft可能可以从device中fetch data2. sqrt也可以自己写,应该要自己写。这个太费时了。3. 累加的问题解决:原子操作是最差的。 1)利用share memory进行两两归并(比如都加到第一个,或者4:1,5:2.。。),然后多个block间再进行归并,间接实现累加。 缺点:必须知道累加的次数; 2)利用r原创 2011-12-14 16:02:55 · 693 阅读 · 0 评论 -
CUDA的累加归并方法
把一个n元素数组里面的值全部加起来的程序,大家都会写,一个for循环搞定。但是如果在cuda代码里面也这么写的话,速度会比cpu上还慢,毕竟人家一对一对拼的话,肯定是干不过cpu的。在cuda里面的算法是n个线程一起参与这个运算。nvidia貌似有个官方的算法,几乎所有看到的cuda代码里面都是用的它:for(int i=(blockDim.x>>1);i>0;i>>=1){转载 2012-03-21 07:09:09 · 7353 阅读 · 4 评论 -
当今主流高性能计算技术介绍比较
信息时代的硬件芯片和存储器价格以摩尔定律的形式下降,可是现在处理的数据量也越来越大。我们先以cocoa编程为例,然后再结合网格计算、云计算,综合对最新的高性能计算技术作介绍。使用 runloop在cocoa编程如果用NSThread开线程[NSThread detachNewThreadSelect: @selector(run) toTarget:self withObject:转载 2012-11-03 19:58:01 · 1559 阅读 · 0 评论 -
如何让Vs2005中显示CUDA语法高亮
1)安装CUDA wizard后,还需要编译share目录下面的共享库,然后添加入自己的解决方案中,包括自己的工程、cutil工程、shrUtils工程;2)界面的工具菜单--》选项--》文本编辑器--》扩展名,添加“cu”,然后选择“MVC”编辑器,应用之后重启VS2005,就能支持语法高亮了。原创 2012-11-03 09:31:07 · 1953 阅读 · 1 评论 -
GPU优化方法
CUDA优化的最终目的是:在最短的时间内,在允许的误差范围内完成给定的计算任务。在这里,“最短的时间”是指整个程序运行的时间,更侧重于计算的吞吐量,而不是单个数据的延迟。在开始考虑使用GPU和CPU协同计算之前,应该先粗略的评估使用CUDA是否能达到预想的效果,包括以下几个方面:精度:目前GPU的单精度性能要远远超过双精度性能,整数乘法、求模、求余等运算的指令吞吐量也较为有限。在科学计算中,由原创 2010-01-23 23:09:00 · 8022 阅读 · 1 评论