标签: 并行计算

PTXPlus笔记

修改ptxplus建议 在gpgpusim源码src/cuda-sim/ptx_loader.cc的函数 char *gpgpu_ptx_sim_convert_ptx_and_sass_to_ptxplus(const std::string ptxfilename, const std::string elffilename,const std::string sassfilename)中,std::ifstream fileStream(fname_ptxplus, std::ios::i...

NVIDIA存储架构速度

GPU不同级别的存储架构有着不同的运行速度,下面是官方的ptx手册中的访问速度表格,比较粗略,以后想起来在哪篇论文里有更详细的再补充。 Space Time Notes Register 0   Shared 0   Constant 0 Amortized cost is low, first access is high Local > 100 clocks   Parameter 0   Immediate 0   Global &g...

使用GPGPU-SIM做实验

1. Introduction 本文说明了使用gpgpusim做实验需要注意的问题以及做出的修改。 强烈不推荐使用gpgpusim做实验。 如果是改SASS,建议maxas或者asfermi(尽管他们可能会有这样那样的问题,而且使用起来难度不小)。使用模拟器,是被reviewer攻击的常用点,除非你有足够强有力的解释,否则这会成为你论文的掣肘。 使用模拟器发的A,一般工作量会很多。 2. 环境搭建 2.1 编译运行环境 docker里跑gpgpusim gpgpusim runtime的dock...

cuda寄存器限制launch_bound和maxrregcount

一个CUDA程序如果使用的寄存器数量过多,会导致在SM上同时驻留的线程和block数量减少,继而导致程序性能不足。 __launch_bounds__和maxrregcount都可以用来限制cuda程序的寄存器数量,但是两者是不同的机制。 __launch_bounds__ __global__ void __launch_bounds__(maxThreadsPerBlock, minBlocksPerMultiprocessor) MyKernel(…) { … } maxThrea...

CUDA PTX手册的目录

为了便于搜索指令对应的章节,将ptx官方手册的目录提取出来。 ptx手册:http://docs.nvidia.com/cuda/parallel-thread-execution/index.html CUDA Toolkit v9.1.85 PTX ISA ▽1. Introduction 1.1. Scalable Data-Parallel Computing using GPUs 1.2. Goals of PTX 1.3. PTX ISA Version 6.1 1.4. Docum...

NVCC编译过程

Introduction 本文介绍了编写的nVIDIA Cuda代码是如何编译成二进制的。 上图即为官方的流程图。 打印步骤 nvcc -O2 -c vectorAdd.cu -keep -arch sm_20 –dryrun 以samples/0_Simple/vectorAdd为例,写上述编译命令。由于vectoradd这个样例比较简单,因此可以直接使用命令进行编译。 参数说明: 参数 含义 O2 该优化选项会牺牲部分编译速度,除了执行-O1所执行的所有优化之外,还会采用几乎所有的目标配置...

并行计算实验(五)Pthread

Pre Pthreads 是 IEEE(电子和电气工程师协会)委员会开发的一组线程接口,负责指定便携式操作系统接口(POSIX)。Pthreads 中的 P 表示 POSIX,实际上,Pthreads 有时候也代表 POSIX 线程。基本上,POSIX 委员会定义了一系列基本功能和数据结构,它希望能够被大量厂商采用,因此线程代码能够轻松地在操作系统上移植。委员会的梦想由 UNIX 厂商实现了,他们都大规模实施 Pthreads。(最著名的例外就是 Sun,它继续采用 Solaris* 线程作为其...

并行计算实验(四)OPENMP

OPENMP OpenMP是专门针对共享地址空间的平行计算机提供的并行计算库,支持OpenMp的编译器包括Sun Compiler,GNU Compiler和Intel Compiler等,现在只需要在编译的时候添加-fopenmp,就启用了对openmp的支持。 对于实验而言,本文的内容已经足够多了,如果想了解更多,请看最后的Reference里的内容。 更多内容查看并行计算实验系列文章目录 Simple HelloWorld #include <stdio.h> int main...

并行计算实验(三)openMPI简单函数解释

更多内容查看并行计算实验系列文章目录 openMPI简单函数介绍 针对实验用到的几个函数进行说明。 MPI为程序员提供一个并行环境库,程序员通过调用MPI的库程序来达到程序员所要达到的并行目的,可以只使用其中的6个最基本的函数就能编写一个完整的MPI程序去求解很多问题。这6个基本函数,包括启动和结束MPI环境,识别进程以及发送和接收消息: 理论上说,MPI所有的通信功能可以用它的六个基本的调用来实现: MPI_INIT 启动MPI环境 MPI_COMM_SIZE 确定进程数 MPI_COMM_R...

并行计算实验目录

并行计算实验(一)配置OPEMMPI 并行计算实验(二)MPI计算矩阵乘法 并行计算实验(三)openMPI简单函数解释 并行计算实验(四)OPENMP 并行计算实验(五)Pthread 说明 该系列文章主要通过并行计算的实验“1000×1000的矩阵乘法”展开,记录了学习MPI和OpenMP,pthread,cuda的过程,所附加的代码有限,并不会把全部代码贴上,贴的也可能有问题,仅供参考。 有问题欢迎回复讨论。