CUDA并行编程
文章平均质量分 56
__DARK__
Only in darkness can you see the stars
展开
-
NVCC 分歩 编译 CUDA 程序
先上一张大图,nviDIA官方文档的编译流程图 完整的说明了如何从一个 .cu or .cpp 生成一个可执行的文件。1.只打印,不运行nvcc -O2 -c backprop_cuda.cu -keep -arch sm_30 --dryrun2.打印出 具体流程1. 读取环境变量#$ _SPACE_= #$ _CUDART_=cudart#$ _HERE_=/home/gpgpu-s原创 2016-12-25 14:05:06 · 4971 阅读 · 0 评论 -
Jetson TX1/TX2 deviceQuery
nvidia@tegra-ubuntu:/usr/local/cuda/samples/1_Utilities/deviceQuery$ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable devi原创 2017-07-07 16:54:09 · 1245 阅读 · 0 评论 -
CUDA 编程之 launch bounds
Launch Bounds1.概述As discussed in detail in Multiprocessor Level, the fewer registers a kernel uses, the more threads and thread blocks are likely to reside on a multiprocessor, which can improve perfor翻译 2017-07-30 22:32:39 · 3958 阅读 · 0 评论 -
GPGPU-Sim ispass2009 编译问题0
GPGPU-Sim ispass2009 编译问题0最早接触GPU-SIM时的几个问题.thanks the reply for wdwQuestionAES在编译AES的时候,一直出现这个错误“fatal error: boost/filesystem/operations.hpp: No such file or directory” 是不是缺少了什么依赖呢 Google了一下 安装了li原创 2017-08-09 09:30:36 · 1017 阅读 · 0 评论 -
PTX ISA Special Registers
PTX ISA Special Registers综述PTX includes a number of predefined, read-only variables, which are visible as special registers and accessed through mov or cvt instructions.%tid CTA 内的线程号 %ntid翻译 2017-08-11 14:21:00 · 1004 阅读 · 0 评论 -
CUDA 编程 之 CUDA-MEMCHECK 工具 简介
CUDA-MEMCHECK1.IntroductionCUDA-MEMCHECK是一个在CUDA toolkit 中的功能性的正确性检查组件。**这个**suite有4个工具 :memcheckThe memcheck tool is capable of precisely detecting and attributing out of bounds and misaligned memory原创 2016-12-29 21:01:25 · 11129 阅读 · 0 评论 -
nvprof tx1 or tx2
nvprof --metrics ipc,gld_transactions,gst_transactions,global_hit_rate,tex_cache_transactions,tex_cache_hit_rate,l2_tex_read_hit_rate,l2_tex_read_transactions,l2_tex_write_transactions,l2_read_transact原创 2017-08-18 21:42:24 · 731 阅读 · 3 评论 -
零拷贝问题
Zero copy in TK1and TX1 and TX2TX1 架构图JETSON TK1,TX1,TX2都是CPU-GPU异构架构,共享主存DRAM(最下边的)左上角,四核arm A57 下一个, 四核arm A53右边GPU 双核Maxwell arch sm_53 /TX 2 是pascal arch sm_62缓存各管各的,无共享 last level cach...原创 2017-08-12 17:44:44 · 1115 阅读 · 0 评论 -
GPGPU-Sim 之 block调度
代码暂存,而后分析unsigned simt_core_cluster::issue_block2core(){ unsigned num_blocks_issued=0; for( unsigned i=0; i < m_config->n_simt_cores_per_cluster; i++ ) { unsigned core = (i+m_cta_issue原创 2017-06-01 23:32:54 · 526 阅读 · 0 评论 -
Jetson TX2 之 JetPack 3.0 安装小记
前言本文主要参考YouTube视频,《JetPack 3.0 - NVIDIA Jetson TX2》 视频链接如下: https://www.youtube.com/watch?v=D7lkth34rgM国外主要研究NVIDIA JETSON系列的网站JetsonHacks Install JetPack 3.0 on a NVIDIA Development Kit. Jet原创 2017-06-25 21:23:51 · 10561 阅读 · 2 评论 -
GPU benchmark 编译问题
GPU benchmark 编译问题写在前面1.大部分的makefile 只需微调,将 arch 版本改为相应的即可。2.有些需要特殊操作,或者本身有问题的,做一下笔记。问题汇总1.can not find -lcudart问题所在,cudart即 cuda runtime,l 即 library,那么找不到这个库是什么问题呢?路径出错了!一般做法就是在编译时加上:nvcc -L/usr/local原创 2017-09-30 20:28:44 · 1376 阅读 · 0 评论 -
device query 存档
device query CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable device(s)Device 0: "GeForce GTX 950" CUDA Driver Version / Runtime Version 9.0 / 8.0 CUD原创 2017-12-10 21:24:36 · 490 阅读 · 0 评论 -
cudnn Installation in Linux
cudnn Installation in Linux安装教程相对简单,实际原理就是将 cudnn的库加入 cuda 的 include 和 lib 文件夹中0.前提此方法适用于Linux 系统,常见的 Ubuntu ,Debian 等等首先你的系统已经成功安装好 CUDA toolkit从官方网站上下载 cudnn 的压缩包(很多版本,下载你需要的),需要登录账户1. Ubuntu 下安翻译 2017-12-20 15:52:05 · 3406 阅读 · 0 评论 -
PTX ISA 之 Control Flow Instructions
Control Flow InstructionsThe following PTX instructions and syntax are for controlling execution in a PTX program:{} @ bra call ret exit1.1. Control Flow Instructions: {}{} Instruction grouping.作翻译 2017-06-29 11:11:55 · 639 阅读 · 1 评论 -
CUDA 编程 之并行计算思想
思想这个东西,是个人理解的问题。无论是 MPI OPENMP 等等并行计算的方法,都是使用多线程同时并发的执行。 所谓并发,就是看起来一起执行罢了,在真正的单核CPU中,是在某段时间内,串行执行,通过线程调度来掩盖其执行的顺序。那么CUDA 编程中,并行计算的思想是SIMT,simple instruction multiple thread。你可以分配好多线程给GPU,无所谓其中的SP有多少,但原创 2017-05-31 21:47:53 · 722 阅读 · 0 评论 -
CUDA Program Analysis
Nvidia Visio profilernvprof ./app input file simple compile process.cu -> .ptx -> .cubin ->exeyou can use “nvcc -keep” to–ptxas-option=-v to see verbose compilation output原创 2016-12-29 09:05:44 · 1026 阅读 · 0 评论 -
Jetson TK1 刷机步骤小记
overview下载资源硬件连接开始刷机英伟达出了三款嵌入式的开发板,TK1,TX1,TX2,分别对应Kepler ,Maxwell,Pascal架构。本文呢讲具体怎么给Jetson TK1 刷机,以上的讨论呢,另写文章讨论。overview先说一下原理,个人理解:其实这个开发板呢,应该说是一个板卡电脑,可以装Linux系统,还有很多接口,虽然资源少了点,跟电脑有什么区别吗?那么给它刷机呢,原创 2017-04-30 13:56:01 · 5367 阅读 · 3 评论 -
CUDA 编程 之 基本概念理解
CUDA 基本概念理解grid分配给每个kernel总的线程资源,可以是一维二维三维的,其中包含许多block。共享global memoryblockgrid 的组成单位,线程块嘛,分配到 GPU SM上的基本单位,不能将其拆开分到不同的SM上。block内的所有线程共享 shared memory,L1 cache 。threadGPU线程,每个线程都有自己私有 资源,例如寄存器,原创 2017-04-27 10:14:50 · 727 阅读 · 0 评论 -
CUDA 编程 之 编译问题小记
在编译cuda程序时出现 这个问题obj/release/mySobeldllComb.cu_o relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC根据提示,说加上 -fPIC 重新编译,如果是 GCC的话,可以直接加 -f原创 2017-05-08 10:09:48 · 1305 阅读 · 0 评论 -
NVIDIA SASS 指令集 之 LDG
之前我在两块GPU上进行编译,都是Maxwell 架构的板子,但是出现了LDG的后缀不同。因此我就很纳闷,比较了一下。.E 表示拓展位 的意识,从32位 ->64位// 64位系统编译 LDG.E.64 R22, [R12+-0x300];// 32位系统编译 LDG.64 R22, [R12+-0x300];原创 2017-05-08 10:48:28 · 2078 阅读 · 0 评论 -
PTX ISA 之 BFS 代码分析
//// Generated by NVIDIA NVVM Compiler//// Compiler Build ID: CL-21124049// Cuda compilation tools, release 8.0, V8.0.44// Based on LLVM 3.4svn//.version 5.0.target sm_20.address_size 64 //原创 2017-04-25 10:09:42 · 925 阅读 · 0 评论 -
CUDA 编程 之 同步函数与访存栅栏
cudaDeviceSynchronize()halts execution in the CPU/host thread (that the cudaDeviceSynchronize was issued in) until the GPU has finished processing all previously requested cuda tasks (kernels, data cop原创 2017-04-05 23:38:01 · 846 阅读 · 0 评论 -
CUDA 编程 之 二进制工具与反编译
1.Overview1.1什么是CUDA二进制文件cuda 二进制文件 (.cubin .elf)是一种 ELF格式的文件,其中包含可执行代码部分,还包含了一些 符号、relocator、debug 信息等其他内容。默认情况下,CUDA编译器 nvcc 可以讲cubin 文件,嵌入到 host 的可执行文件中。也可以 使用 nvcc -cubin 来编译直接得到 x.cubin 文件。注意: 更多细翻译 2017-03-15 23:22:55 · 7398 阅读 · 0 评论 -
PTX ISA 之 原子操作 atom 的小结
关于 原子操作 atom 的小结atomAtomic reduction operations for thread-to-thread communication.语法atom{.space}{.scope}.op.type d, [a], b; atom{.space}{.scope}.op.type d, [a], b, c; .space = { .global, .shared }; .s原创 2017-03-01 16:15:13 · 915 阅读 · 0 评论 -
PTX ISA 之 comparisions 小结
http://docs.nvidia.com/cuda/parallel-thread-execution/index.html#comparisonsinteger meaning signed op unsigned op bit-size op a == b eq eq eq a != b ne ne ne a < b lt l原创 2017-02-28 13:52:45 · 456 阅读 · 0 评论 -
CUDA 编程 之 配置cache函数
设置L1/shared mem 配置函数Sets the preferred cache configuration for a device function.__host__ cudaError_t cudaFuncSetCacheConfig ( const void* func, cudaFuncCache cacheConfig ) 枚举参数enum cudaFuncCache CUD原创 2017-02-27 21:49:15 · 1767 阅读 · 0 评论 -
CUDA 编程 之 cuda occupancy
Occupancy = Active Warps / Maximum Active WarpsRemember: resources are allocated for the entire block Resources are finiteUtilizing too many resources per thread may limit the occupancyPotential oc原创 2016-12-28 23:19:31 · 912 阅读 · 0 评论 -
C与CUDA混合编译动态链接文件.so
C与CUDA混合编译动态链接文件.so1.需求由于需要生成动态链接库来被其他接口调用,因此我们需要编译成.so2.实现参考文献【1】用很简单的例子讲述了c和C++语言在Linux下如何编译成动态链接库。方法很简单,只要加上编译选项-shared和fPIC即可gcc test_a.c test_b.c test_c.c -fPIC -shared -o libte...原创 2018-03-10 14:20:05 · 3258 阅读 · 2 评论