3. 강의목표
For higher computing performance, new processors have heterogeneous architectures where multi-core CPU and high-density GPU are integrated together, e.g., Intel’s Haswell has both multi-core CPU and GPGPU. However, to achieve high performance using these processors, smart algorithms and their efficient implementations that matches to the underlying processor architecture are essential. Programming at this level is challenging. In this course, we will cover the fundamentals of high-performance programming, followed by the architecture and programming of CPU and GPGPU processors. Hands-on labs will be held for students to learn various programming techniques and experience the realization and joy of fast image/video processing algorithms on both CPU and GPGPU. The trade-offs between the ease of programming and achieved performance with these processors will be discussed.
Topics covered are
1. Introduction to high-performance programming: Instruction-level parallelism, data-level parallelism, cache architecture, data double buffering.
2. Intel’s multi-core CPU architecture and programming: Architectural features of SandyBridge/IvyBridge/Haswell, streaming multimedia instruction set (SSE4/AVX/AVX2), and multi-core programming using CILK
3. Nvidia GPGPU architecture and programming: Architectural features, parallelizing an algorithm for GPGPU architecture, memory optimizations, general purpose GPGPU programming languages: CUDA and OpenCL
4. Image/video computing algorithms and their optimization for both CPU and GPGPU architectures
5. 성적평가
50% project and 50% assigned homework
8. 강의진도계획
The course will be held from June 24, 2018 (Tuesday) through July 13, 2018 (Friday). Classes will be held from 9:30 to 11:30 am and labs will be held in the afternoon. Some readings before class and between classes would be needed.
9. 수업운영
Lab work will require programming, and working knowledge with C language is preferred. The assignments will be given to develop programs for image/video processing on the CPU as well as GPGPU. Through the lab sessions, students will gain useful insights into how to optimally utilize various architectural features for high-performance programming via hands-on experience.
The assignments will cover image/video processing topics such as:
Simple image operations: Invert, add, transpose
DSP processing: FIR, 2D convolution
Medical imaging algorithm: Scan conversion, 3D Boxcar, Volume Gradient, Volume rendering, multiplanar reconstruction
11. 장애학생에 대한 학습지원 사항
- 수강 관련: 문자 통역(청각), 교과목 보조(발달), 노트필기(전 유형) 등
- 시험 관련: 시험시간 연장(필요시 전 유형), 시험지 확대 복사(시각) 등
- 기타 추가 요청사항 발생 시 장애학생지원센터(279-2434)로 요청