课程介绍" J$ J) o. V6 Y
近年来,随着深度学习的高速发展,大数据技术的普及,接下来紧接的会普及发展的想必就是硬件层面的配合,而GPU无疑是最重要的趋势。过去几年,计算领域我们目睹了英伟达(NVIDIA)公司带来的变革。计算统一设备架构(Compute Unified Device Architecture, CUDA)编程语言的引入,第一次使这些非常强大的图形处理器为程序员日常所用,以应对日益复杂的计算工作。从嵌入式设备行业到家庭用户,再到超级计算机,所有的一切都因此而改变。+ {! C1 I- u2 N0 ` X4 g
计算机软件界较大的变迁是从串行编程转向了并行编程。其中,CUDA起到了重要的作用。究其本质,图形处理单元(Graphics Processor Unit,GPU)是为高速图形处理而设计的,它具有天然的并行性。CUDA采用了一种简单的数据并行模型,再结合编程模型,从而无需操纵复杂的图形基元。
我们也可以轻而易举的发现各种各样的开源计算机库,例如OpenCV,Caffe,TensorFlow等等,都提供了对应于GPU的使用接口,使得GPU的使用越来越主流而高效。" L, c. T4 L) j r I" L: C
本课程主要分为四部分,分别涵盖了硬件搭载知识、CUDA编程基础、CUDA性能优化与设计、实战项目经验。
% Q. s5 ~$ I; h+ z
' M G* S! X$ ^8 Y( q4 t2 K8 b0 x
授课对象:( O3 D; J: @# p& c$ l" d
对并行计算,GPU编程刚兴趣的同学,熟悉C/C++编程语言。' u9 x2 F2 d7 F- n8 z
需要有带NVIDIA显卡的计算机,如果没有的同学可能需要额外购买AWS的GPU服务器,费用约是0.4美元/小时。
) ]8 ?0 e) n% z4 b# k
课程环境:9 Z- [- ^) f4 Y# r7 k
硬件环境:AWS G2 Instances(NVIDIA GRID K520) / CG1 Instances(NVIDIA Tesla M2050) /自备带NVIDIA GPU的电脑
操作系统:Linux 64bit (Ubuntu 14.04)' { X" p1 q* Z) g* E8 K4 w
编程语言:C/C++) t8 W7 G% Z0 L [3 u+ I0 y
使用软件:CUDA7.5 & ?6 {0 F: G$ k2 ?% O& A! C2 q; J
+ S: t- T% V) n
收获预期:' E# ^" o, ? w# a# z
具备GPU和CUDA编程能力,可以完成初步的GPU程序设计和优化设计,对于实际应用中CUDA的使用能有全面的考虑和实操能力。" C0 w; k$ D1 x' \1 R2 j! v
课程目录
一. GPU与CUDA背景基础介绍& }7 e) Z- X" H. ?
第1课 CUDA硬件环境,体系结构,软件环境介绍,包括平台、架构、开发工具和热点技术
第2课 并行编程介绍,CUDA核心概念,包括网格、线程块,不同类型内存的工作机制# |$ v; w% n! o0 ?. Y3 I
二. CUDA编程基础
第3课 CUDA设备内存、常量内存、共享内存和纹理内存,CUDA流和事件
第4课 CUDA执行模式、线程调度、内核执行和CUDA存储器的使用
第5课 CUDA流处理器簇、多GPU编程、纹理操作
三. CUDA性能优化与设计 {6 v3 T+ i' }6 ^; j9 W* y
第6课 CPU/GPU协同编程,串行/并行程序中提高并行度的常用策略' C U& R4 \/ ^1 m) x y
第7课 流式负载以及使用GPU做应用程序性能优化常用策略
第8课 在集群中使用CUDA
四. 实战项目经验
第9课 应用CUDA做高维数据处理9 H" I4 ?# c& c4 R
第10课 CUDA+OpenGL做图形渲染6 K+ A+ v6 _0 Z4 K3 }
第11课 CPGPU实现视频流实时光流跟踪4 D9 B- e/ x3 w* j. r8 F
第12课 深度学习框架中的GPU应用
下载地址:
|