- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 class template std::vector
Vectors are sequence containers representing arrays that can change in size.Just like arrays, vectors use contiguous storage locations for their elements, which means that their elements can also
2016-10-30 14:54:33 730
原创 CUDA中编译时显示helper_functions.h:No such file的解决办法
看到网上不少人说自己在CUDA编程时会遇到这样一个问题,对拷贝过来的.cu文件执行nvcc命令时会显示error helper_functions.h:No such file的错误。困难的是连helper_functions.h这个头文件在哪都不知道。这个问题其实很好解决,我以最简明扼要的文字来给出一个解决方案:1.首先,改正直接用nvcc命令编译程序的习惯,换成makefile。2
2016-10-30 11:11:05 10246 1
原创 main函数的参数列表
我们在学习编程时,总会看见main(),或main(int argc,char *argv[])。这些参数是可省略吗,具体意思又是什么呢?这也许是国内接触编程语言时碰到的几乎最基础的知识了,这里还是解释一下比较好。argc表示总的命令参数, char *argv[]是一个字符数组,大小是argc,它总是不为空的,第0个元素一般为程序的全名。一般写程序时都会
2016-10-28 16:11:06 829
原创 关于size_t类型的整理
因为用的比较多,所以我决定整理一下size_t的知识点。其实说白了就是一种数据类型,在标准C库中定义的,应为unsigned int,在64位系统中为 long unsigned int。size_t为什么麻烦呢,因为它引起了我程序的问题,也是一种玄学的bug:Typename is not allowed.这个报错经常是与size_t一起出现的,所以当发现这个错误时,就必须弄懂siz
2016-10-26 09:40:05 4907
转载 网上找到的一篇适合初学者看的CUDA使用说明,良心干货
CUDA是什么 CUDA,Compute Unified Device Architecture的简称,是由NVIDIA公司创立的基于他们公司生产的图形处理器GPUs(Graphics Processing Units,可以通俗的理解为显卡)的一个并行计算平台和编程模型。 通过CUDA,GPUs可以很方便地被用来进行通用计算(有点像在CPU中进行的数值计算等等)
2016-10-23 16:43:39 17342
原创 GPU中基于CUDA计算SM中active block和active warp及普遍优化流程
CUDA优化第一要义是设计block和thread的dimension,这时active block和active warp就必须要考虑了。(一维的同学请回避谢谢)首先通俗地讲一些CUDA优化的常识吧accurancy:只在关键步骤使用双精度,其他部分仍然使用单精度浮点以获得指令吞吐量和精度的平衡;建议将双精度放在CPU里计算。异构并行会给项目加分哦latency:降低延迟需要考虑缓冲
2016-10-23 10:39:46 3808
原创 基于CUDA的GPU优化方法
初学CUDA,往往拿到代码无从下手,也没有什么明确的思路。我想有必要把前人的经验总结拿出来,便于后来者更快掌握这门技术。对于block和thread的分配问题,有这么一个技巧,每个block里面的thread个数最好是32的倍数,因为,这样可以让计算效率更高,促进memory coalescing。其实,每个grid里面block的dimension维度和size数量,以及每个block里面的
2016-10-18 19:44:15 3429
原创 DLL文件概述及安装方法
在日常生活中,我们经常在浏览电脑文件,特别是安装某款软件寻找bin文件夹里的setup时(这里专指使用windows系统的用户,linux大神别处走),碰到.dll文件。看懂世界需要一双善于怀疑的眼睛,那么,这个.dll文件到底是什么,有什么用呢?“DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不
2016-10-17 19:40:34 3270
原创 extern "C"
大家在学习C语言或C++时一定都学过extern关键字,它是用来声明一个函数或变量在本模块和其他模块中皆可用。除此之外,还可以进行链接指定。也就是说,当编译器编译时遇到了,不会立即报错,而是在链接阶段到目标模块找到。虽然说C++和C有许多相似的地方,但C++毕竟还是面向对象的语言,它支持函数重载,而C则不支持。细节上体现在编译后在函数库中保存的名字不同,同一个函数名C++会在名字后面加上变量的
2016-10-17 19:09:45 346
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人