
CUDA
siqi_fighting
这个作者很懒,什么都没留下…
展开
-
CUDA编程基础系列1
电压不变的情况下,一个CPU的电力消耗大约是它时钟频率的三次方。更糟的是,若CPU产生的热量增加,即使时钟频率不变,根据硅材料的性质,CPU的功耗也会进一步增加。Power wall(功耗墙):不断增加的无效的电能消耗,意味着要么不能充分为处理器提供电力,要么不能够有效的冷却处理器,已经达到了电子设备或芯片封装的散热极限,即功耗墙。CUDA is an extension to the原创 2016-09-19 16:47:13 · 483 阅读 · 0 评论 -
cuda 核函数中的参数说明<<<Dg, Db, Ns, S>>>
核函数中有4个参数,分别为grid维度,block维度,每个block在共享内存中动态分配的字节数量,以及cuda stream。kernel>>以下内容参考自cuda8.0 cuda c programming guide.http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html在章节B.21. Execu原创 2017-10-19 17:36:06 · 4719 阅读 · 0 评论 -
cuda计时⌛️
可参考nvidia官方文档:http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__EVENT.html#group__CUDART__EVENT_1g40159125411db92c835edb46a0989cd6__host__ cudaError_t cudaEventElapsedTime ( flo原创 2017-07-11 15:32:36 · 397 阅读 · 0 评论 -
cuda kernel 核函数内分配存储空间
key point: kernel内部使用new[], delete[]分配存储空间#include #include #include #include #include #include #include using namespace std;__global__ void dev_alloc(){ int num = 10;原创 2017-07-11 15:02:35 · 5759 阅读 · 1 评论 -
cuda 数组元素个数大于线程数目
关键是更新tidtid += blockDim.x * gridDim.x; (加上所有线程的数量,以便对其他数组元素接着更新)__global__ void add(int *d_arr, int *d_brr, int *d_crr, int arrLength) { int tid = blockDim.x * blockIdx.x + thr原创 2017-07-10 18:54:23 · 1505 阅读 · 0 评论 -
cuda之curand生成随机数
文章来源:http://blog.csdn.net/li563868273/article/details/44055859 cuda随机数的生成本文仅作为个人学习笔记,记载下来方便以后学习查询~.~头文件中需包含#include API 为__device__ voidcurand_init ( unsigned long lo原创 2017-05-03 11:23:26 · 8567 阅读 · 0 评论 -
cuda 全局device变量的用法
device全局变量的使用主要用到了两个函数:cudaMemcpyToSymbol()cudaMemcpyFromSymbol()__constant__ float constData[256];float data[256];cudaMemcpyToSymbol(constData, data, sizeof(data));cudaMemcpy原创 2017-07-10 18:04:52 · 10386 阅读 · 0 评论 -
cuda程序测试:nvprof工具的使用。持续更新中……
nvprof的使用:首先保证使用nvcc编译器将源程序编译为可执行程序接着执行命令:nvprof ./executableProprofiling result中显示的是kernel执行的time情况 api calls则显示的是程序调用的api所耗费的time情况 一般对kernel进行分析时,看profiling result中的结果。此外,还可以测试程序的其他原创 2017-05-22 17:35:36 · 9877 阅读 · 0 评论 -
cuda程序执行出错: libcudart.so.8.0: cannot open shared object file: No such file or directory
问题描述: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory解决办法:首先确认/etc/profile中的路径包含了cuda8.0的安装路径及相应的库文件export PATH=$PATH:/usr/local/c原创 2017-05-06 15:51:04 · 53709 阅读 · 16 评论 -
cuda程序编译出错: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5
编译cuda程序时报错:/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libGL.so when searching for -lGL /usr/bin/ld: skipping incompatible /lib/libGL.so when searching原创 2017-05-06 15:36:22 · 8257 阅读 · 0 评论 -
centos7下安装cuda8.0
1. 从NVIDIA官网下载相应的显卡驱动和cuda8.0 toolkit cuda8.0下载地址:获得cuda8.0: cuda_8.0.44_linux.run2. 安装NVIDIA Tesla K80驱动过程: 2.1 使用root权限使开机时进入字符界面: systemctl set-default multi-user.target原创 2017-05-05 23:30:12 · 12649 阅读 · 0 评论 -
cuda设置指定的GPU可见
可设置环境变量CUDA_VISIBLE_DEVICES,指明可见的cuda设备方法1: 在/etc/profile或~/.bashrc的配置文件中配置环境变量(/etc/profile影响所有用户,~/.bashrc影响当前用户使用的bash shell)在/etc/profile文件末尾添加以下行:export CUDA_VISIBLE_DEVICES=0,1 ##仅显卡设备0,1G原创 2017-04-19 09:54:39 · 90369 阅读 · 4 评论 -
cuda入门学习教程网站整理,持续更新中。。。
注:仅为个人学习笔记原创 2017-02-24 20:16:42 · 529 阅读 · 0 评论 -
编译cuda源程序时出错 error: function “atomicAdd(double *, double)” has already been defined
注:个人笔记cuda 8.0 提供了对atomicAdd的定义,但atomicAdd在之前的cuda toolkit中并未出现,因此一些程序自定义了atomicAdd函数。因此,在atomicAdd前添加宏判断即可。如:#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600 #else __device__ double原创 2017-02-22 16:33:02 · 6515 阅读 · 4 评论 -
cuda8.0使用nvcc编译程序出现warning:The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated的解决办法
初学CUDA,使用的NVIDIA显卡是Tesla K80, 安装的是cuda8.0写了一个简单的测试程序,使用nvcc编译,指令如下: nvcc cudaPrintDeviceInfo.cu -o cudaPrintDeviceInfo本以为会很顺利地生成执行文件。但还是出现了warning:nvcc warning : The 'compute_20', 'sm_20', and '原创 2016-12-30 15:46:45 · 30058 阅读 · 2 评论 -
nvcc编译器选项
1.指定编译阶段主要指定编译的阶段以及要编译的输入文件。-cuda -cubin -fatbin -ptx -gpu -E -c :最常使用,编译每个.c/.cc/.cpp/.cxx/.cu输入文件为object文件-dc -dw -dlink -link -lib :编译所有的输入文件为object文件,并且把结果添加到指定的library原创 2017-06-07 10:42:22 · 4279 阅读 · 1 评论