문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
소개
- GPU 프로그래밍이란 무엇인가?
- 왜 GPU 프로그래밍을 사용하는가?
- GPU 프로그래밍의 도전 과제와 Trade-offs는 무엇인가?
- GPU 프로그래밍을 위한 프레임워크는 무엇인가?
- 애플리케이션에 적합한 프레임워크를 선택하는 방법
OpenCL
- OpenCL이란 무엇인가?
- OpenCL의 장단점은 무엇인가?
- OpenCL 개발 환경 설정
- 벡터 덧셈을 수행하는 기본 OpenCL 프로그램 작성
- OpenCL API를 사용하여 디바이스 정보 쿼리, 디바이스 메모리 할당 및 해제, 호스트와 디바이스 간 데이터 복사, 커널 실행, 스레드 동기화 수행
- 디바이스에서 실행되고 데이터를 조작하는 커널 작성하기 위해 OpenCL C 언어 사용
- OpenCL 내장 함수, 변수, 라이브러리를 사용하여 일반적인 작업 및 연산 수행
- 글로벌, 로컬, 상수 및 프라이빗과 같은 OpenCL 메모리 공간을 사용하여 데이터 전송 및 메모리 접근 최적화
- 워크 아이템, 워크 그룹 및 ND-레인지를 정의하여 병렬성을 제어하는 OpenCL 실행 모델 사용
- 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 디버거 및 ROCm 프로파일러와 같은 도구를 사용하여 ROCm 프로그램을 디버깅하고 테스트
- 코일링, 캐싱, 프리페칭 및 프로파일링과 같은 기법을 사용하여 ROCm 프로그램 최적화
비교
- OpenCL, CUDA, ROCm의 기능, 성능 및 호환성을 비교
- 벤치마크 및 메트릭을 사용하여 GPU 프로그램을 평가
- GPU 프로그래밍의 모범 사례 및 팁 학습
- GPU 프로그래밍의 현재 및 미래 트렌드 및 도전 과제 탐구
요약 및 다음 단계
요건
- C/C++ 언어와 병렬 프로그래밍 개념에 대한 이해
- 컴퓨터 아키텍처와 메모리 계층에 대한 기본 지식
- 명령줄 도구와 코드 편집기 사용 경험
대상
- 다양한 프레임워크를 사용하여 GPU 프로그래밍을 학습하고, 그 기능, 성능 및 호환성을 비교하고자 하는 개발자
- 다양한 플랫폼과 장치에서 실행될 수 있는 포터블하고 확장 가능한 코드를 작성하고자 하는 개발자
- GPU 프로그래밍 및 최적화의 트레이드오프와 도전을 탐구하고자 하는 프로그래머
28 시간