문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
개요
- ROCm이란?
- HIP이란?
- ROCm vs CUDA vs OpenCL
- ROCm과 HIP의 기능 및 아키텍처 개요
- 개발 환경 설정 방법
시작하기
- Visual Studio Code를 사용해 새로운 ROCm 프로젝트 생성
- 프로젝트 구조 및 관련 파일들 탐색
- 프로그램 컴파일 및 실행 방법
- printf 및 fprintf를 활용한 결과값 출력
ROCm API
- 호스트 프로그램에서 ROCm API가 수행하는 역할 이해
- 디바이스 정보 및 기능을 조회하기 위한 ROCm API 사용법
- 디바이스 메모리 할당 및 해제를 위한 ROCm API 활용
- 호스트와 디바이스 간 데이터 복사 시 ROCm API의 역할
- 커널 실행 및 스레드 동기화 처리를 위한 ROCm API 사용법
- 오류 및 예외 상황 대응을 위한 ROCm API 활용 방안
HIP 언어
- 디바이스 프로그램에서 HIP 언어가 담당하는 기능 이해
- GPU에서 실행 가능한 커널 작성을 위해 HIP 언어 사용법
- HIP의 데이터 타입, 한정자, 연산자 및 표현식 활용 방안
- HIP 내장 함수, 변수 및 라이브러리를 활용해 일반적인 처리 구현
ROCm과 HIP 메모리 모델
- 호스트와 디바이스 간의 메모리 모델 차이점 이해
- 전역, 공유, 상수 및 로컬 메모리 등 ROCm과 HIP에서 제공하는 메모리 영역 활용법
- 포인터, 배열, 텍스처, 서피스와 같은 메모리 객체의 사용 방식
- 읽기 전용, 쓰기 전용, 읽기/쓰기 등 ROCm과 HIP 메모리 접근 모드 활용법
- 메모리 일관성 보장 및 동기화 메커니즘에 대한 설명
ROCm과 HIP 실행 모델
- 호스트와 디바이스 간의 실행 모델 차이점 이해
- 스레드, 블록, 그리드를 활용한 병렬 처리 구조 정의 방법
- hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x 등 ROCm과 HIP 스레드 관련 함수 사용법
- __syncthreads, __threadfence_block와 같은 블록 단위 기능 활용 방안
- hipGridDim_x, hipGridSync 및 협력적 그룹 등 그리드 차원 기능 설명
디버깅
- ROCm과 HIP 프로그램에서 발생하기 쉬운 오류와 버그 파악 방법
- Visual Studio Code 디버거를 활용한 변수 확인, 브레이크포인트 설정 및 호출 스택 분석법
- AMD 디바이스 환경에서 ROCm과 HIP 프로그램을 디버깅하기 위한 ROCm 디버거 사용법
- 성능 평가 목적으로 AMD 디바이스에서 ROCm 프로파일러를 활용해 코드 측정하는 방법
최적화
- ROCm과 HIP 프로그램의 성능에 영향을 미치는 주요 요인 분석
- 메모리 처리량 향상을 위한 데이터 결합화 기법 적용
- 지연 시간 감소를 위해 캐싱 및 프리페칭 기술 활용 방안
- 메모리 접근 최적화 및 대역폭 개선을 위한 공유 메모리와 로컬 메모리 기법 적용
- 성능 분석 도구를 사용해 실행 시간과 리소스 사용량을 측정하고 개선하는 방법
요약 및 향후 진행 방향
요건
- C/C++ 언어와 병렬 프로그래밍 개념에 대한 이해
- 컴퓨터 아키텍처 및 메모리 계층 구조에 관한 기초 지식
- 명령줄 도구 및 코드 에디터 사용 경험
대상 수강생
- ROCm과 HIP을 활용해 AMD GPU 프로그래밍 및 병렬 처리 성능 향상을 원하는 개발자
- 다양한 AMD 디바이스에서 실행 가능한 고성능·확장성 높은 코드 작성을 희망하는 개발자
- GPU 프로그래밍의 저수준 측면을 탐구하고 자신의 코드 성능 최적화에 관심 있는 프로그래머
28 시간