강좌 목록으로 돌아가기
AI022 Professional

AMD HIP 프로그래밍 가이드

Heterogeneous-compute Interface for Portability(HIP)를 위한 포괄적인 기술 매뉴얼입니다. 이 매뉴얼은 개발자가 단일 소스 코드에서 AMD 및 NVIDIA GPU용 포터블 애플리케이션을 개발할 수 있도록 하는 C++ 런타임 API와 커널 언어를 제공합니다. 가이드에서는 설치, 환경 설정, 프로그래밍 모델, 메모리 할당 및 CUDA 코드를 HIP로 마이그레이션하는 데 필요한 도구에 대해 다룹니다.

4.9
12.0h
841 학생들
0 좋아요
인공지능
수강 시작하기

강좌 개요

📚 콘텐츠 요약

다양한 컴퓨팅 인터페이스를 위한 포터블성(hip)에 대한 종합적인 기술 매뉴얼입니다. 이 매뉴얼은 단일 소스 코드에서 AMD 및 NVIDIA GPU용 포터블 애플리케이션을 개발할 수 있도록 해주는 C++ 런타임 API와 커널 언어를 제공합니다. 가이드는 설치, 환경 구성, 프로그래밍 모델, 메모리 할당, 그리고 CUDA 코드를 HIP로 이식하기 위한 도구를 다룹니다.

포터블 GPU 프로그래밍 마스터: 하나의 소스로 AMD와 NVIDIA 플랫폼 모두 지원.

저자: Advanced Micro Devices, Inc. (AMD)

감사의 말씀: AMD, AMD Arrow 로고, AMD Instinct, Radeon, ROCm 및 이들의 조합은 Advanced Micro Devices, Inc.의 상표입니다. Linux는 Linus Torvalds의 등록 상표입니다. PCIe는 PCI-SIG Corporation의 등록 상표입니다.

🎯 학습 목표

  1. HIP 프레임워크의 주요 기능과 가치 제안을 정의한다.
  2. 시스템 도구를 사용하여 HIP 환경에 접근하고 쿼리하는 방법을 보여준다.
  3. HIP 포터블성과 컴파일러 기술 간의 아키텍처적 관계를 설명한다.
  4. NVIDIA 및 AMD 환경에 맞는 플랫폼별 설치를 수행한다.
  5. 여러 저장소를 통합하여 HIP 소스 코드에서 빌드하는 과정을 조율한다.
  6. 시스템 구성 및 검증 도구를 활용하여 성공적인 설치 여부를 확인한다.
  7. HIP 할당, 일관성 제어, 제로-코피 호스트 메모리 가시성 등을 통해 GPU 메모리를 구성하고 관리한다.
  8. HIP 전용 함수/변수 퀄리파이어, 벡터 타입, 동기화 원시 기능을 사용해 고성능 커널을 개발한다.
  9. 워프 샤프르, 보이트, 볼랏, 협업 그룹 기능을 활용한 고급 병렬 알고리즘을 구현한다.
  10. HIPIFY 도구를 사용하여 CUDA 코드를 자동으로 변환하고, 프로젝트 내부에서의 변환을 관리한다.

🔹 수업 1: HIP 포터블성과 아키텍처 소개

개요: 본 수업에서는 이종 컴퓨팅 인터페이스 포터블성(HIP)의 기초 개념을 다룹니다. 핵심 기능을 정의하는 요소들, HIP 환경에 접근하는 주요 방법, 그리고 다양한 GPU 아키텍처(AMD 및 NVIDIA) 간의 원활한 포터블성을 가능하게 하는 기반 컴파일러 기술에 대해 설명합니다.

학습 결과:

  • HIP 프레임워크의 주요 기능과 가치 제안을 정의한다.
  • 시스템 도구를 사용하여 HIP 환경에 접근하고 쿼리하는 방법을 보여준다.
  • HIP 포터블성과 컴파일러 기술 간의 아키텍처적 관계를 설명한다.

🔹 수업 2: HIP 환경 설치 및 검증

개요: 본 수업은 다양한 하드웨어 플랫폼에서 HIP(Heterogeneous-compute Interface for Portability) 환경을 설정하는 기술적 안내서입니다. AMD 및 NVIDIA 백엔드에 대한 구체적인 설치 절차, HIP 런타임을 소스 저장소에서 빌드하는 복잡한 과정, 그리고 GPU 개발을 위한 시스템 준비 상태를 확인하기 위한 최종 검증 절차를 다룹니다.

학습 결과:

  • NVIDIA 및 AMD 환경에 맞는 플랫폼별 설치를 수행한다.
  • 여러 저장소를 통합하여 HIP 소스 코드에서 빌드하는 과정을 조율한다.
  • 시스템 구성 및 검증 도구를 활용하여 성공적인 설치 여부를 확인한다.

🔹 수업 3: HIP 프로그래밍 모델 및 API 심층 분석

개요: 본 수업은 이종 컴퓨팅 인터페이스 포터블성(HIP) 프로그래밍 모델에 대한 종합적인 탐색을 제공합니다. 메모리 관리 및 커널 실행을 위한 기초 API, HIP 커널 언어의 세부 사항(퀄리파이어 및 내장 변수 포함), 워프 레벨 원시 기능, 협업 그룹, 특수 수학 인트린식 등의 고급 기능을 다룹니다.

학습 결과:

  • HIP 할당, 일관성 제어, 제로-코피 호스트 메모리 가시성 등을 사용하여 GPU 메모리를 구성하고 관리한다.
  • HIP 전용 함수/변수 퀄리파이어, 벡터 타입, 동기화 원시 기능을 사용해 고성능 커널을 개발한다.
  • 워프 샤프르, 보이트, 볼랏, 협업 그룹 기능을 활용한 고급 병렬 알고리즘을 구현한다.

🔹 수업 4: CUDA 애플리케이션에서 HIP으로 전환 및 마이그레이션

개요: 본 수업은 CUDA 소스 코드를 이종 컴퓨팅 인터페이스 포터블성(HIP) 프레임워크로 시스템적으로 마이그레이션하는 과정을 다룹니다. 자동화 도구인 HIPIFY의 사용법, 프로젝트 변환 전략, 플랫폼별 컴파일러 행동 차이(예: HIP-Clang 대 비디오 카드) 파악, 아키텍처 차이 관리 방법을 설명합니다.

학습 결과:

  • HIPIFY 도구를 사용하여 CUDA 코드를 자동으로 변환하고, 프로젝트 내부에서의 변환을 관리한다.
  • 전처리기 매크로 및 환경 쿼리를 활용하여 AMD 및 NVIDIA 대상 플랫폼과 컴파일러를 구분한다.
  • 아키텍처 기능 체크(HIP_ARCH)를 구현하고, memcpyToSymbol 같은 특수한 CUDA 함수에 대한 대응 방안을 적용한다.