Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
소개
- GPU 프로그래밍이 무엇인가?
- GPU 프로그래밍을 사용하는 이유는 무엇인가?
- GPU 프로그래밍의 도전 과제와 트레이드오프는 무엇인가?
- GPU 프로그래밍을 위한 프레임워크는 무엇인가?
- 애플리케이션에 적합한 프레임워크를 선택하는 방법
OpenCL
- OpenCL이 무엇인가?
- OpenCL의 장점과 단점은 무엇인가?
- OpenCL 개발 환경을 설정하는 방법
- 벡터 덧셈을 수행하는 기본 OpenCL 프로그램을 작성하는 방법
- OpenCL API를 사용하여 장치 정보 조회, 장치 메모리 할당 및 해제, 호스트와 장치 간의 데이터 복사, 커널 실행, 스레드 동기화 등의 작업을 수행하는 방법
- OpenCL C 언어를 사용하여 장치에서 실행되는 커널을 작성하고 데이터를 조작하는 방법
- OpenCL 내장 함수, 변수, 라이브러리를 사용하여 일반적인 작업을 수행하고 연산을 수행하는 방법
- OpenCL 메모리 공간인 글로벌, 로컬, 상수, 프라이빗 메모리를 사용하여 데이터 전송과 메모리 접근을 최적화하는 방법
- OpenCL 실행 모델을 사용하여 병렬성을 정의하는 작업 항목, 작업 그룹, ND-범위를 제어하는 방법
- CodeXL 등의 도구를 사용하여 OpenCL 프로그램을 디버깅하고 테스트하는 방법
- 코일싱, 캐싱, 프리패칭, 프로파일링 등의 기술을 사용하여 OpenCL 프로그램을 최적화하는 방법
CUDA
- CUDA란 무엇인가?
- CUDA의 장점과 단점은 무엇인가?
- CUDA 개발 환경을 설정하는 방법
- 벡터 덧셈을 수행하는 기본 CUDA 프로그램을 작성하는 방법
- CUDA API를 사용하여 장치 정보 조회, 장치 메모리 할당 및 해제, 호스트와 장치 간의 데이터 복사, 커널 실행, 스레드 동기화 등의 작업을 수행하는 방법
- CUDA C/C++ 언어를 사용하여 장치에서 실행되는 커널을 작성하고 데이터를 조작하는 방법
- CUDA 내장 함수, 변수, 라이브러리를 사용하여 일반적인 작업을 수행하고 연산을 수행하는 방법
- CUDA 메모리 공간인 글로벌, 공유, 상수, 로컬 메모리를 사용하여 데이터 전송과 메모리 접근을 최적화하는 방법
- CUDA 실행 모델을 사용하여 병렬성을 정의하는 스레드, 블록, 그리드를 제어하는 방법
- CUDA-GDB, CUDA-MEMCHECK, NVIDIA Nsight 등의 도구를 사용하여 CUDA 프로그램을 디버깅하고 테스트하는 방법
- 코일싱, 캐싱, 프리패칭, 프로파일링 등의 기술을 사용하여 CUDA 프로그램을 최적화하는 방법
ROCm
- ROCm이 무엇인가?
- ROCm의 장점과 단점은 무엇인가?
- ROCm 개발 환경을 설정하는 방법
- 벡터 덧셈을 수행하는 기본 ROCm 프로그램을 작성하는 방법
- ROCm API를 사용하여 장치 정보 조회, 장치 메모리 할당 및 해제, 호스트와 장치 간의 데이터 복사, 커널 실행, 스레드 동기화 등의 작업을 수행하는 방법
- ROCm C/C++ 언어를 사용하여 장치에서 실행되는 커널을 작성하고 데이터를 조작하는 방법
- ROCm 내장 함수, 변수, 라이브러리를 사용하여 일반적인 작업을 수행하고 연산을 수행하는 방법
- ROCm 메모리 공간인 글로벌, 로컬, 상수, 프라이빗 메모리를 사용하여 데이터 전송과 메모리 접근을 최적화하는 방법
- ROCm 실행 모델을 사용하여 병렬성을 정의하는 스레드, 블록, 그리드를 제어하는 방법
- ROCm Debugger와 ROCm Profiler 등의 도구를 사용하여 ROCm 프로그램을 디버깅하고 테스트하는 방법
- 코일싱, 캐싱, 프리패칭, 프로파일링 등의 기술을 사용하여 ROCm 프로그램을 최적화하는 방법
비교
- OpenCL, CUDA, ROCm의 기능, 성능, 호환성을 비교하는 방법
- 벤치마크와 메트릭을 사용하여 GPU 프로그램을 평가하는 방법
- GPU 프로그래밍의 모범 사례와 팁을 학습하는 방법
- GPU 프로그래밍의 현재 및 미래의 동향과 도전 과제를 탐구하는 방법
요약 및 다음 단계
Requirements
- C/C++ 언어와 병렬 프로그래밍 개념에 대한 이해
- 컴퓨터 아키텍처와 메모리 계층 구조에 대한 기본 지식
- 명령줄 도구와 코드 편집기에 대한 경험
대상자
- 다양한 프레임워크를 사용하여 GPU 프로그래밍을 학습하고, 기능, 성능, 호환성을 비교하고자 하는 개발자
- 다양한 플랫폼과 장치에서 실행될 수 있는 포터블하고 확장 가능한 코드를 작성하고자 하는 개발자
- GPU 프로그래밍과 최적화의 trade-offs와 도전을 탐구하고자 하는 프로그래머
28 Hours