并行计算_cuda
gonaYet
这个作者很懒,什么都没留下…
展开
-
cuda gpu CTAMergesort
注:下面所提到的代码实现,均在moderngpu2.0中被作者所重写。gpu上-并行归并排序,modern gpu上CTAMergesort源码实现:template typename ValType, typename Comp>MGPU_DEVICE void CTAMergesort(KeyType threadKeys[VT], ValType threadValue原创 2016-06-04 14:25:11 · 1003 阅读 · 0 评论 -
cuda是否会开发自家的图形api?
转载链接:http://news.mydrivers.com/1/170/170233.htm转载 2016-09-20 17:43:26 · 262 阅读 · 0 评论 -
cuda float转换为half计算
当发现float的性能瓶颈在带宽的话,可以考虑将float转换为half计算,其实对于浮点数进行计算,16浮点数half的精度已经很足够了。原创 2016-09-08 11:48:39 · 2791 阅读 · 0 评论 -
cuda Unified Memory
cuda Unified Memory 会简化内存分配的代码编写量。同时对于直接向gpu内存进行赋值,也可以获得很高的效率。但是,记住,使用Unified Memory分配的内存,在进行kernel内核调用的时候,其性能是低下的。在追求性能的时候,应该避免使用Unified Memory。而Unified Memory的应用场景,一般也不会追求性能的。而这里有一篇讨论的文件,可原创 2016-11-08 16:52:50 · 1570 阅读 · 1 评论 -
查询gpu卡信息(nvidia)
lspci | grep VGA转载 2016-10-28 11:03:20 · 1259 阅读 · 0 评论 -
cuda host进行内存分配的想法
在host方法里面int *a;cudaMalloc((void**)&a, sizeof(int) * 10);这里的a还是在host内存的,只是a所存放的地址为gpu上的地址因此可以进行地址值的赋值int *pptr[2];pptr[0] = a;只是将a的gpu内存地址值赋值给host的pptr的二维指针而已但是如果是:int **pptr;c原创 2017-01-06 17:39:35 · 492 阅读 · 0 评论 -
cuda wrap执行方式
原文:At every instruction issue time, the SIMT unit selects a warp that is ready to execute and issues the next instruction to the active threads of the warp. A warp executes one common instruction at翻译 2017-04-11 16:11:07 · 1501 阅读 · 0 评论 -
cuda sm执行block的数量
原文:How many blocks a multiprocessor can process at once depends on how many registers per thread and how much shared memory per block are required for a given kernel since the multiprocessor's regis翻译 2017-04-11 17:13:22 · 3792 阅读 · 0 评论 -
cuda 数组注意事项
cuda大致在使用的时候,会涉及到global memory,local memory, share memory, register memoy而其中在方法里面如果前缀什么都不加的话, 如float num[15], 这时候数组可能会存放在register memory或者在 local memory其中说明下local memory的作用,其是用于存放在方法中声明的动态数组、复杂数据结原创 2016-09-07 17:35:15 · 1578 阅读 · 0 评论 -
cuda 安装
下载地址:https://developer.nvidia.com/cuda-downloads管理员启动:cuda_7.5.18_linux.run该运行已经包含了驱动(driver)和工具包(toolkit)集成了,所以很方便Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o原创 2016-07-22 11:22:14 · 1619 阅读 · 0 评论 -
cuda __shfl_xor
__shfl是cuda提供的wrap(线程束)级别的方法,一般线程束为32。相似的方法有几个。__shfl() Direct copy from indexed lane __shfl_up() Copy from a lane with lower ID relative to caller __shfl_down() Copy from a lane with higher ID re原创 2016-06-04 17:52:03 · 5334 阅读 · 0 评论 -
cuda文档查看
cuda接口文档说明:https://www.cs.cmu.edu/afs/cs/academic/class/15668-s11/www/cuda-doc/html/modules.html转载 2016-07-22 16:02:46 · 554 阅读 · 0 评论 -
cudaDeviceReset
cudaDeviceReset重置当前线程所关联过的当前设备的所有资源如在调用cuda的过程中出现中途错误,需要提前退出程序,可以调用这个cudaDeviceReset来清空之前所关联过得所有资源。猜想:可能也能清空当前线程和device的映射关系原创 2016-07-23 18:22:31 · 5505 阅读 · 0 评论 -
cuda-gdb
cuda-gdb转载:http://book.51cto.com/art/201301/376309.htm转载 2016-07-25 14:52:00 · 427 阅读 · 0 评论 -
cuda gpu查询缓慢
当你发现计算gpu的查询变得慢的时候,可能是你在编译链接的时候添加了-g -G调试的参数一旦加了这个参数,gpu执行起来就会挺慢的。因此可以尝试将这个参数去掉,会发现gpu运行起来就很快乐。原创 2016-07-30 00:38:31 · 535 阅读 · 0 评论 -
cudaDeviceReset
cudaDeviceReset 是将cudaSetDevice所设置的当前关联的gpu设备,重置,即当前关联的gpu设备之前申请的资源都会被清空。原创 2016-08-01 19:46:56 · 1769 阅读 · 0 评论 -
cuda调优
cuda调优工具:nsight, nvvp, nvprof, 前两个为可视化工具,可以远程监控性能参数, nvprof为命令行监控工具,其实nsight和nvvp的远程监控实现是借助于nvprof来收集性能数据的。cuda优化方案:1.检测是否有local memory使用:这个一般是由于local valiable的数组,由于无法在编译确定数组大小或者迭代数组无法展开,这样都原创 2016-09-09 17:14:18 · 2004 阅读 · 0 评论 -
cuda coalesced access to global memory
device : titan x compute capblity: 5.2一个wrap内的内存访问是被合并进行内存访问了:而global memory的内存访问在compute capblity 5.2默认是先经过缓存L2 cache 然后当L2 cache不存在的时候才会进行全局访问,然后数据存放在l2 cache,然后将结果访问kernelL2 cache:原创 2016-09-12 16:02:10 · 592 阅读 · 0 评论 -
cuda shared(共享内存)—一个容易错误的点
可能出现的代码情况:template__global__ void kCopy(int row_size, float **col_valuess, float *row_values) {int row_index = blockIdx.x * blockDim.x + threadIdx.x;if (row_index >= row_size) return;vol原创 2017-05-04 18:00:47 · 2665 阅读 · 0 评论