문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
GPU 컴퓨팅과 CUDA 아키텍처 개요
- CPU와 GPU 간의 아키텍처 차이점 설명
- NVIDIA GPU 스트리밍 멀티프로세서 모델 소개
- CUDA 프로그래밍 모델의 기본 개념 정리
- 이기종 컴퓨팅 환경에서 호스트와 디바이스 간 상호작용 원리
CUDA 개발 환경 설정 방법
- CUDA 툴킷 13.x의 설치 절차 안내
- NVCC 컴파일러와 빌드 과정 이해하기
- 디바이스 정보 확인을 통한 환경 검증 방법
- IDE 통합 및 개발 툴 활용법 설명
CUDA 커널 작성 및 실행 방법
- 커널 함수의 구문 및 지정자 활용법
- 커널 실행을 위한 설정값 결정하기
- 벡터 덧셈 등 기본적인 데이터 병렬 처리 패턴 연습
- CUDA 오류 확인 매크로 사용법 익히기
CUDA 스레드 구조와 실행 모델 이해하기
- 그리드, 블록, 스레드의 계층적 구성 방식 설명
- 스레드 인덱싱 및 전역 ID 산출 방법 설명
- 워프 실행 기전과 SIMT 모델 개요
- 디바이스 자원 활용도와 점유율 계산법 소개
GPU 메모리 구조 및 관리 기법
- 글로벌, 공유, 상수 메모리, 레지스터 등 각 메모리 유형의 특징 설명
- 디바이스 메모리 할당 및 해제 절차 설명
- 호스트와 디바이스 간 데이터 전송 방식 안내
- 블록 내부 협업을 위한 공유 메모리 활용법
통합 메모리와 데이터 이동 원리
- 통합 메모리 모델과 관리형 메모리 할당 방식 설명
- 페이지 이동 동작 및 온디맨드 페이징 개념 소개
- cudaMemPrefetchAsync를 활용한 비동기 프리페칭 기법
- 데이터 접근 패턴에 따른 메모리 힌트 설정법 안내
Nsight Systems을 이용한 시스템 전반의 프로파일링
- Nsight Systems를 통한 타임라인 분석 방법
- CPU와 GPU 간 동기화 지점 파악 기법
- 커널 실행 흐름 및 메모리 전송 현상 시각화
- 시스템 레벨 성능 데이터 해석 방법 설명
Nsight Compute로 커널 최적화 수행하기
- Nsight Compute를 이용한 대화형 커널 프로파일링 기법
- 메모리 처리량 및 대역폭 활용도 분석 방법
- 연산 자원 사용률과 워프 상태 통계 확인
- 최적화 전략 도출을 위한 지침 설명
동시 처리 가능한 스트림과 비동기 작업 관리
- CUDA 스트림의 종류 및 디폴트 스트림 사용법 설명
- 계산 수행과 데이터 전송을 동시에 실현하는 방안
- 스트림 간 동기화 기법 및 CUDA 이벤트 활용법
- 다중 스트림으로 구성된 파이프라인 설계 예제
오류 처리와 디버깅 툴 사용법
- CUDA API 반환값과 오류 복구 전략 안내
- 메모리 접근 문제 감지용 Compute-sanitizer 활용법
- 커널 디버깅을 위한 cuda-gdb 사용 방식 설명
- 동기식 오류 탐지를 위해 어서션 구문 적용하기
프로파일링 기반 최적화 절차 연습하기
- 단계별 프로파일링 방법론 익히기
- 성능 저하 원인 식별 및 우선순위 설정법</li>
- 최적화 전후 성능 변화 측정 기법</li>
- 최적화 결정 사항 문서화 방식 안내</li>
전체 과정을 아우르는 GPU 가속 애플리케이션 구축 프로젝트
- GPU 가속 솔루션을 단계별로 기획하고 설계하기</li>
- 개발 전 과정에서 지속적인 프로파일링 수행 방법</li>
- 최종 성능 측정 및 결과 보고서 작성법</li>
- 실제 서비스 환경으로의 배포 시 고려사항 정리</li>
요건
- 변수 타입, 루프, 조건문, 함수 및 배열 처리 등 기본적인 C/C++ 프로그래밍 능력이 필요합니다.
- 명령줄을 통한 프로그램 컴파일 및 실행에 익숙해야 합니다.
- GPU나 CUDA 프로그래밍 경험은 전혀 요구되지 않습니다.
수강 대상
- GPU를 활용해 C/C++ 애플리케이션을 가속화하고자 하는 소프트웨어 개발자 및 엔지니어들입니다.
- CPU 중심의 계산 환경에서 이제는 이기종 컴퓨팅으로 전환하려는 과학 연구자와 HPC 전문가들도 해당됩니다.
- 실무 환경에 GPU 가속 기술을 도입할 방안을 모색 중인 기술 리더들도 참여 가능합니다.
8 시간