CUDA
豆-Metcalf
已弃用CSDN,欢迎关注我的GitHub https://github.com/Meatlf,不断更新关于图像算法,深度学习,算法优化等学习笔记和代码,欢迎粉一下.
展开
-
解决Erroer:unified memory profiling failed.问题
nvprof ./test-all报错:==2432== NVPROF is profiling process 2432, command: ./test-all======== Error: unified memory profiling failed.解决方法:nvprof --unified-memory-profiling off ./test-all原创 2017-03-22 18:12:19 · 3317 阅读 · 0 评论 -
CUDA优化策略概述
原始的代码通常无法获得最佳的性能,这时就需要借助CUDA提供的两个基本的性能剖析工具:nvvp,一个独立的视觉性能分析器(visual profiler)和nvprof,一个命令行性能分析器。 优化CUDA代码需要测量的几个问题: 1)应用程序空间(内存)或时间的复杂度 2)特殊指令的使用 3)函数调用的频率和持续的时间 限制核函数性能的三个因素: 1)存储器带宽 2)计算资源原创 2017-04-09 11:12:05 · 372 阅读 · 0 评论 -
CUDA项目文件管理之-一个源文件
linux 重命名文件和文件夹原创 2017-03-31 17:52:11 · 487 阅读 · 0 评论 -
win10下VS15环境下Nsight Debug的Connection to the Nsight monitor on 'localhost' failed.的解决
在win10下VS15环境下,对CUDA程序GPU部分进行断点调试,出现问题如下: 解决方法如下: 1)右击Nsight图标,选中Options… 2)修改两项,修改好如下图所示: 3)重启Nsight软件,接下来就好调试了!原创 2017-03-31 17:21:14 · 3650 阅读 · 2 评论 -
nvprof查询bank冲突
nvprof --events shared_ld_bank_conflict,shared_st_bank_conflict ./your_program参考资料: 豆-请教-如何用nvprof或Profiler查看使用到共享存储器有多少路bank冲突原创 2017-03-31 18:05:36 · 1427 阅读 · 0 评论 -
CUDA优化策略之-achieved occupancy
占用率的定义/*SM(Streaming Multiprocessor,流式多处理器):构成GPU的基本硬件单元; multiprocessor:在CUDA里概念和SM一样; 激活warp:在warp中的所有线程在核函数中从开始执行到全部结束的过程; 在每个SM中存在允许最大激活warp的数量; */ 占用率(occupancy):在SM上实际激活warp数量与理论最大激活warp数量之比原创 2017-04-14 15:50:35 · 1306 阅读 · 0 评论 -
GPU计算能力和性能指标
体现GPU计算能力的两个重要特征: 1)CUDA核的个数; 2)存储器大小。 描述GPU性能的两个重要指标: 1)计算性能峰值; 2)存储器带宽。原创 2017-04-14 16:41:20 · 27857 阅读 · 0 评论 -
我的GPU设备信息
我的GPU设备信息如下:原创 2017-03-01 09:24:52 · 876 阅读 · 0 评论 -
在Ubuntu16.04上面安装cuda_8.0.61_375.26_linux.run
总是出现:Extraction failed.Ensure there is enough space in /tmp Signal caught, cleaning up解决方法:sudo mkdir /home/tmpsudo chmod 1777 /home/tmpexport TMPDIR=/home/tmp然后再运行:./cuda_8.0.61_375.26_linux.run, OK!原创 2017-03-25 22:02:32 · 14369 阅读 · 8 评论 -
Ubuntu16.04+cuda8.0安装教程
1、安装nvidia驱动首先去官网上查看适合你GPU的驱动。 例如,本人的GPU适合的驱动如图: 执行如下语句,安装sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get updatesudo apt-get install nvidia-367sudo apt-get install mesa-common-devsu原创 2017-03-18 11:53:59 · 82581 阅读 · 6 评论 -
Ubuntu16.04中cuDNN安装教程
1.下载cuDNN5.1 CUDA8.0 Linux版本2.解压gzip -d cudnn-8.0-linux-x64-v5.1.tgztar xf cudnn-8.0-linux-x64-v5.1.tar3.复制sudo cp cuda/include/cudnn.h /usr/local/cuda/includesudo cp -a cuda/lib64/libcudnn* /usr/lo原创 2017-06-17 09:42:08 · 7112 阅读 · 0 评论 -
正方形共享存储器
共享存储器的物理模型以及存储数据的方式如下图1所示,每个共享存储器被分为32个bank,可以通过线程块里的线程访问共享存储器,最理想的情况下一个warp(32个线程)一次访问32个bank。 2维静态共享存储器的声明如下: _ _ shared _ _ int tile[N][N]; 其中第一个N表示的为y轴上维度为N,第二个N表示的为x轴上维度为N 二维线程获取共享存储器上数原创 2017-03-08 18:51:06 · 428 阅读 · 0 评论 -
共享存储器bank conflict
对每个bank在每个周期只能进行一次32位的读写操作,因此也说每个bank的带宽为每周期32bit。 只要同一个 warp 的不同线程会访问到同一个 bank 的不同地址就会发生 bank conflict,除此之外的都不会发生 bank conflict。原创 2017-02-27 10:18:50 · 1239 阅读 · 0 评论 -
CUDA学习资料集
官方资料:1.CUDA Toolkit Documentation v8.0 2.NVIDIA Nsight Visual Studio Edition 5.2 User Guide 3.NVIDIA CUDA初级教程视频优秀博客:1.空上悟 2.Augusdi 3.LuchangLi 4.吉祥原创 2017-01-06 14:05:26 · 649 阅读 · 0 评论 -
CUDA教程之——共享存储器(1)-矩阵相乘
利用矩阵乘法说明如何使用共享存储器 参考资料:1)CUDA_C_Programming_Guide; 2)CUDA_C_Best_Practice原创 2016-11-21 16:12:25 · 1428 阅读 · 0 评论 -
CUDA教程之——共享存储器(2)-矩阵与自身转置相乘
用共享存储器存储子矩阵;首先确定线程块,然后交叉使用线程块里的行列索引原创 2016-11-21 21:47:29 · 1563 阅读 · 0 评论 -
使用CMake编译用到cuFFT库的CUDA源代码
0.新建文件夹testmkdir test1. 在文件夹test下的源文件CUFFT.cu2. 在文件夹test下新建编译文件CMakeLists.txt:cmake_minimum_required(VERSION 2.8)project(run)find_package(CUDA QUIET REQUIRED)# Pass options to NVCCset(CUDA_NVCC_FLA原创 2017-01-06 18:58:41 · 1787 阅读 · 1 评论 -
cuFFT使用教程
cuFFT使用教程原创 2017-01-11 17:51:34 · 4550 阅读 · 0 评论 -
CUDA学习记录之-吉祥的博客
CUDA简介 CUDA和C对内存操作函数的对比表 GPU架构 软硬件构架图 GPU架构(Fermi、Kepler) 1.CUDA核的数量(包括ALU和FPU)=SM的数量×每个SM里面CUDA核的数量,例如:512个accelerator cores即所谓CUDA cores(包含ALU和FPU)16个SM,每个SM包含32个CUDA core。 2.每个SM由一下几部分组成:原创 2017-02-16 18:42:25 · 832 阅读 · 0 评论 -
最简单的CUDA程序
#include <stdio.h>__global__ void helloFromGPU(void){if (threadIdx.x == 5){printf("Hello World from GPU thread %d!\n", threadIdx.x);}}int main(void){printf("Hello World from CPU!\n");helloFr原创 2017-02-27 20:10:11 · 1257 阅读 · 0 评论 -
nvcc编译.c文件的方法
nvcc -Xcompiler -std=c99 sumArraysOnHost.c –o sum原创 2017-02-27 21:28:05 · 2167 阅读 · 0 评论 -
Runtime API使用范例
1.资料:2.使用:cudaStream_t stream[2]; for(int i=0;i<2;i++) cudaStreamCreate(&stream[i]);参考资料:CUDA_Runtime_API.pdf原创 2017-02-27 11:03:26 · 834 阅读 · 0 评论 -
GPU设备管理
由于一个系统可能有多个GPU,因此在进行 cuda编程中获取GPU设备信息并选取合适的GPU用于运行程序是很好的习惯。以下代码实现了这两个目的。int main(int argc,char **argv){// set up device int dev = 0; cudaDeviceProp deviceProp; CHECK(cudaGetDevicePrope原创 2017-03-01 10:38:27 · 778 阅读 · 0 评论 -
win10下Visual Studio2015+cuda8.0+cudnn v5.1+Anaconda4.4.0+tensorflow+Keras+Pycharm+OpenCV3.2.0安装教程
1.Visual Studio2015默认安装2.cuda8.0默认安装 注意:不需要手动设置环境变量3.cudnn v5.1解压该文件夹,将文件夹lib、include和bin里的文件分别复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0里相对应的lib、include和bin文件夹下,安装成功!4.tensorflowpip原创 2017-06-27 11:39:45 · 2561 阅读 · 0 评论