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

Number of participants


Price per participant

Upcoming Courses

Related Categories