默认计划
0人加入学习
(1人评价)
MUSA 架构学习
价格 免费
音频听课 手机端支持一键听课 (试一试)
该课程属于 MUSA从入门到精通
请加入后再学习
  1. GPU异构计算简介
    1. 异构计算
      系统同时使用多种处理器与核心,提高整体的性能或资源利用率。
      CPU注重复杂逻辑运算,GPU负责简单大量运算。
    2. GPU与GPU计算
      负责渲染2D,3D,VR效果,专注计算机图形领域。
      被开发出AI计算相关功能。相比CPU直接计算,效果拔群。
    3. GPU编程
      OpenCL通用编程语言
      CUDA 来自NVIDIA,开发过如cuDNN,cuFFT以及cuBLAS等数学库Thrust,以及通讯库NCCL等。
  2. OpenCL编程
    由NDRange组成;所需计算的数据放入NDRange进行划分。
    每个NDRange由多个WORK GROUP组成;每个WORK GROUP由多个WORK-ITEM组成。
    对应关系:NDRange对应CUDA编程中的Grid;WORK GROUP对应Block;WORK-ITEM对应CUDA的Thread。
    Wave front:CUDA中的Warps,指线程组。
    在OpenCL编程中,传统for循环会被拆分,通过获取每一个线程(WORK-ITEM)的ID,映射到每个硬件单元执行,从而控制每一个数据的计算。通过这样的原理,实现密集并行计算。
  3. CUDA(GPU编程)
    由Grid,每个Grid的多个Block,每个Block的多个Thread组成。
    GPU编程需要HOST辅助进行数据的分配和拷贝等命令。
    C/C++中的向量计算在CUDA中会将for循环通过线程ID拆开并行展开然后计算。其中用于修饰方法的__global__前缀表示此函数用于操纵device,需要通过HOST,也就是CPU辅助来进行数据拷贝启动GPU device启动函数功能然后吧已经计算好的内容从GPU memory(显存)中拷贝到主存。
  4. CUDA Driver/Runtime API
    细分的几十个模块,每个模块负责一个大功能。
    其中标题中的Drive和Runtime库是CUDA最底层功能的库。其中Drive部分负责与GPU通讯,Runtime则在Drive基础上封装一层方便用户调用的库。
    大部分的用户使用Runtime提供的API。
    除此之外,还有很多上层的加速库,如FFT,BLAS等。
     
[展开全文]

课程特色

视频(5)

学员动态