cuda(GPU programming)
文章平均质量分 65
lingerlanlan
我知道这些日子
你要承担多少哀伤
才可以面对破碎的梦想
展开
-
cuda原子性操作代码编译问题 error: identifier "atomicAdd" is undefined
这次遇到的问题是,编译原子性代码出错。代码是《GPU高性能编程cuda实践》第9章的hist_gpu_gmem_atomics.cu和hist_gpu_shmem_atomics.cu。这次还是用原有sdk带有makefile修改来编译。出现"/usr/local/cuda-5.5"/bin/nvcc-ccbin g++ -I../../../common/inc -m32原创 2014-03-11 17:03:31 · 6139 阅读 · 0 评论 -
数组求和的快速方法(利用cuda的共享内存)--第一部分之源码分析
代码来自于这里https://code.google.com/p/stanford-cs193g-sp2010/source/browse/trunk/tutorials/sum_reduction.cu原创 2014-04-28 20:06:17 · 4724 阅读 · 0 评论 -
数组求和的快速方法(利用cuda的共享内存)--第二部分之程序完善
上一篇原创 2014-04-28 20:06:41 · 3308 阅读 · 0 评论 -
数组求和的快速方法(利用cuda的共享内存)--第三部分之性能分析
测试的是原创 2014-04-28 20:07:04 · 2111 阅读 · 0 评论 -
发个图,庆祝一下
训练终于有结果了,分类准确率稳定在0.7,目前最高到达0.73。发图庆祝一下,留个坑,到时再详细总结一下。原创 2014-06-13 17:52:30 · 3289 阅读 · 5 评论 -
cuda核函数再调用核函数,多层并行
#include __global__ void childKernel(int i){ int tid = blockIdx.x*blockDim.x+threadIdx.x; printf("parent:%d,child:%d\n",i,tid); for(int j=i;j<i+10;j++) { printf(",%d",j); } printf("\n");原创 2014-05-29 23:33:46 · 6955 阅读 · 2 评论 -
全局内存性能测试
对10w大小的数组原创 2014-05-31 21:23:39 · 1404 阅读 · 0 评论 -
我所写的CNN框架 VS caffe
一个月前,自己模仿caffe实现了一个卷积神经网络的框架。一个月前,自己模仿caffe实现了一个卷积神经网络的框架。相同点1无缝支持CPU和GPU模式,GPU模式使用cuda实现。不同点1我的CNN不依赖与任何第三方的函数库,caffe用到了第三方的数学函数库(cublas和mkl)来做矩阵操作。其实区别就在于原创 2014-07-25 19:19:13 · 9689 阅读 · 8 评论 -
cuda编程:关于共享内存(shared memory)和存储体(bank)的事实和疑惑
主要是在研究访问共享内存会产生bank conflict时,自己产生的疑惑。对于这原创 2014-06-20 20:06:28 · 6310 阅读 · 3 评论 -
cuda的Shuffle技术以及自定义双精度版本
参考资料:https://devblogs.nvidia.com/parallelforall/faster-parallel-reductions-kepler/原创 2014-05-10 12:36:11 · 5200 阅读 · 0 评论 -
eclipse for cuda(nsight)崩溃,出现 Java heap space,unhandled event loop exception错误
今天发现nsight这个神奇,是eclipse专门写cuda的IDE来的。但不幸总是崩溃IDE退出。出现这些英文错误提示:Java heap spacean internal error occurred during:update monitorunhandled event loop exception最后折腾了一下子,找到了解决方案.打开配置文件nsigh原创 2014-04-24 18:13:20 · 14272 阅读 · 0 评论 -
cuda:在GPU内存中生成带有指针的结构体
今天本来想写一个矩阵的卷积运算的,但是果真自己动手写代码就遇到各种问题了。本来想在GPU中生成一个下面的Matrix结构体,再让GPU做运算。structMatrix{float* dptr;introw;intcol;}初始代码:Matrix*m;HANDLE_ERROR(cudaMalloc( (void**)&m,sizeof(Matrix)) );想了一原创 2014-03-12 17:47:58 · 5154 阅读 · 3 评论 -
cuda程序的编译运行
Cuda的编译运行 至今没有找到有现成的IDE可以一键编译运行cuda程序的,也只有用命令行或者makefile来编译了。 命令行编译看起来很复杂,makefile又不会写。 目前找到了这么一个可行的办法:修改sdk的makefile。 cuda安装后,会有一些自带的例子。samples里面的源代码,已带有makefile文件原创 2014-03-10 11:47:32 · 4248 阅读 · 0 评论 -
cuda的线程模型
cuda中所有的线程由一个线程格表示,线程格分为若干个线程块,每个线程块有若干个线程。还有,线程格和线程块都有一维形式和二维形式的表示。刚开始看代码觉得有点乱,干脆自己整理一下,清晰自己的思路。一维形式的线程格和一维形式的线程块线程格:由gridDim.x个线程块组成线程块:由blockDim.x个线程组成下面线程格就是由4个线程块组成,原创 2014-03-10 16:59:08 · 3359 阅读 · 0 评论 -
gpu数组赋值各种方法性能测试
给gpu一个1000大小的数组赋值,为了测量时间,原创 2014-04-29 18:47:25 · 3285 阅读 · 1 评论 -
cuda的__device__函数在另一个文件使用(分开编译和链接)
类似c++,有这么一个使用场景。在一个文件定义一个原创 2014-05-06 19:21:52 · 8406 阅读 · 1 评论 -
用cuda实现图像缩放(从中领悟到了学习cuda编程的方法)
最近在cuda实现HOG特征抽取。感觉算法中有不少地方可以并行化,但是怎么并行化才会优化性能,自己还没有找到很明确的方法。 HOG特征抽取有一个步骤是图像缩放,我也将图像缩放实现了cuda并行化操作。下面以这个简单的例子谈谈cuda并行化编程的感受。 首先肯定是要了解图像缩放的算法,我参考了下面的资料,了解了双线性插值算法。双线性插值实现的缩放http:原创 2014-03-21 11:50:42 · 10163 阅读 · 11 评论 -
cuda编程环境搭建
官方安装教程:http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html我的安装环境:ubuntu12.04安装前准备:1验证你的GPU是否支持cuda编程终端输入lspci | grep -i nvidia找出显卡型号,看一下是否在http://develo原创 2014-03-10 11:19:55 · 3476 阅读 · 0 评论 -
cuda编程:不要在一个cpp文件中声明__device__和__global__函数
比如一下代码是正常的:原创 2014-05-08 22:35:26 · 7781 阅读 · 1 评论 -
《GPU高性能编程cuda实战》读书笔记
第一章:为什么需要cuda用GPU能实现很强的并行计算,cudac是对c进行了一定的扩展,学习cudac只需要c语言的基础即可,不需要opengl或者DX的知识。当然书中这里的意思其实是指,如果只是用GPU来计算的话,是不需要图形学和opengl,DX的知识的,但是如果你要做图形图像的应用,当然需要具备这些知识,比如后来提到的cuda跟opengl或者DX的互操作。第二章:入门原创 2014-03-14 17:41:35 · 4611 阅读 · 0 评论