
并行运算
shchojj
这个作者很懒,什么都没留下…
展开
-
CUDA(五) 周斌 CUDA/GPU编程模型
CPU和GPU互动模型:CPU和GPU交互,互联结构 GPU的线程组织模型(不停的强化) GPU存储模型 基本的编程CPU-GPU交互各自的物理内存空间,内存慢慢的贡献 通过PCIE总线互连(8GB/s~16GB/s) 交互开销较大CPU部分:CPU+内存+芯片GPU部分:GPU芯片+显存GDDR ,金手指pcieGPU存储器层次架构(硬件)openCL和CUDA...转载 2018-10-18 11:43:24 · 555 阅读 · 0 评论 -
CUDA(四) 周斌 GPU体系架构概述
FLOPS - FLoating-point OPerations per SecondGFLOPS - One bilion ()FLOPS 十亿TFLOPS - 1,000GFLOPS 一万亿 T->P->EGPU(Graphic Processing Unit) 结构图GPU是一个异构的多处理器芯片,为图形图像处理优化A G...转载 2018-10-17 17:53:15 · 957 阅读 · 0 评论 -
CUDA(十一) 周斌 CUDA程序深入优化
存储优化CPU-GPU数据传输最小化,依赖于PCIe总线Host<->Device 数据传输带宽远低于 global memory(GPU内部) 8GB/s(PCIe x16 Gen2)vs 156 GB/s & 515Ginst/s(C2050)减少传输 中间数据直接在GPU分配、操作、释放。有时更适合在GPU进行重复计算。现在CPU上计...转载 2018-10-20 11:13:10 · 1800 阅读 · 0 评论 -
CUDA(十) 周斌 CUDA程序基本优化
目录 Parallel Reduction 并行归约:线程和线程的调度和分割 Warp 分割 Memory Coalescing访存合并 Bank冲突:在shared memory SM资源动态分割:硬件 数据预读 指令混合 循环展开有效的数据并行算法+针对GPU架构特性的优化 = 最优性能Parallel Reduction并行...转载 2018-10-19 16:15:43 · 760 阅读 · 0 评论 -
CUDA(九) 周斌 CUDA程序分析和调试工具
Linux$ nsightncvv编译器 单卡模式(一个GPU)双卡模式(两个GPU,1个显示,1个调试)远程调试(连接远程服务器)查看硬件配置:$ lspci | grep -i nvidia显示设置放在GPU,专业调试放在另一个GPU$ nvidia-smi系统管理接口1、启动Nsight2、新建project3、选择平台CUDA的计算能力是不一...转载 2018-10-19 15:00:18 · 1418 阅读 · 0 评论 -
CUDA(八) 周斌 CUDA 编程三
matrix multiply: CUDA Kernelvoid MatrixMulOnHost(float* M, float* N, float* P, int width){ for(int i = 0; i < width; ++i) for(int j = 0; j < width; ++j)//双层循环用来访问结果矩阵P的所有元素 ...转载 2018-10-19 13:38:38 · 619 阅读 · 0 评论 -
CUDA(三) 周斌 CUDA开发环境搭建和工具配置
windows: VS+CUDA CUDA samples :样例程序+点击run CUDA Toolkit:编译器+开发工具+库文件 Linux查看Ubuntu版本:cat /etc/issueGPU型号:lspci | grep -i nvidia查看Linux的发行版本(64|32):uname -a查看GCC支持:gcc -v...转载 2018-10-16 14:38:43 · 682 阅读 · 0 评论 -
opencv + opencv_contrib + tbb + openMP +CUDA+MKL+googtest(一)
下载:1、VS20172、CUDA3、CMake(msi)4、TBB:源码|release(oss_win.zip)(也可以直接下载,我选择了exe的安装)。5、openMP(不用下载)6、MKL(切换到Windows有时候有点慢,要注册一下啊)7、googletest:code|release 8、OpenCV+opencv_contrib(版本要一致啊,我一般喜...转载 2018-10-09 17:58:35 · 2509 阅读 · 0 评论 -
并行计算
因为不是很懂,所以简单做个笔记。MPI:就目前了解,更多的运用在分布式系统上。(OpenMPI)OpenMP:主要是在单主机多核多线程上。共享内存并行机。(编码简单)TBB:针对CPU的并行。CUDA:针对GPU的并行。OpenCL:异构平台,兼容CPU和GPU的并行调用,可用平台广。 OpenMP就直接一句 #pragma omp parallel for就并行了...转载 2018-10-09 16:40:12 · 248 阅读 · 0 评论 -
CUDA(二)并行程序设计概述
串行计算模式常规软件是串行的 设计运行于一个中央处理器上(CPU) 通过离散的指令序列完成一个问题的解决 一条一条指令的执行 同时只有一条指令在执行并行计算模式 并行计算是同时应用多个计算资源解决一个计算问题 涉及多个计算资源或处理器 问题被分解为多个...转载 2018-10-15 17:50:13 · 507 阅读 · 0 评论 -
CUDA(一)周斌
CPU结构和性能优化流水线 Pipelining 分支预测 Branch Prediction 超标量 Superscalar 乱序执行 Out-of-Order(OoO) Execution 存储器层次 Memory Hierarchy 矢量操作 Vector Operations 多核处理 Multi-Core 优...转载 2018-10-15 16:59:26 · 970 阅读 · 0 评论 -
CUDA(七) 周斌 CUDA 编程
内置类型和函数Built-ins and functions线程同步问题Synchronizing threads线程调度问题Scheduling threads存储模型Memory model重访Matrix multiply原子函数Atomic functionsCUDA函数声明 执行位置 Executed on the ...转载 2018-10-18 17:50:01 · 902 阅读 · 0 评论 -
CUDA(六) 周斌 CUDA 编程模型
GPU架构概览GPU特别适用于: 密集计算,高度可并行计算 图形学 2.晶体管主要被用于: 执行计算 而不是 缓存数据 ...转载 2018-10-18 15:37:42 · 463 阅读 · 0 评论 -
显存不够时,如何利用GPU训练数据
参考:https://github.com/openai/gradient-checkpointing https://www.jqr.com/article/000537 https://www.infoq.cn/article/fRN0eVBNedTIrm5_Ps1M使用gradient-checkpointing来节省存储 ...翻译 2019-06-14 11:27:45 · 6486 阅读 · 0 评论