Quay lại Khóa học
AI022 Nghề nghiệp

Hướng dẫn lập trình AMD HIP

Một tài liệu kỹ thuật toàn diện về Heterogeneous-compute Interface for Portability (HIP). Nó cung cấp API Runtime C++ và ngôn ngữ kernel cho phép các nhà phát triển tạo ứng dụng di động cho GPU AMD và NVIDIA từ một mã nguồn duy nhất. Hướng dẫn này bao gồm việc cài đặt, cấu hình môi trường, mô hình lập trình, phân bổ bộ nhớ và các công cụ chuyển đổi mã CUDA sang HIP.

4.9
12.0h
841 học viên
4 lessons
0 lượt thích
Trí tuệ nhân tạo
Bắt đầu học

Tổng quan khóa học

📚 Tóm tắt nội dung

Tài liệu hướng dẫn kỹ thuật toàn diện cho Heterogeneous-compute Interface for Portability (HIP). Tài liệu cung cấp API Runtime C++ và ngôn ngữ kernel giúp nhà phát triển tạo ứng dụng có thể di chuyển giữa các GPU của AMD và NVIDIA từ một mã nguồn duy nhất. Hướng dẫn bao gồm các chủ đề như cài đặt, cấu hình môi trường, mô hình lập trình, phân bổ bộ nhớ, và công cụ chuyển đổi mã CUDA sang HIP.

Thành thạo lập trình GPU đa nền tảng: Một mã nguồn cho cả hai nền tảng AMD và NVIDIA.

Tác giả: Advanced Micro Devices, Inc. (AMD)

Ghi nhận: AMD, biểu tượng mũi tên AMD, AMD Instinct, Radeon, ROCm và các tổ hợp tương ứng là nhãn hiệu của Advanced Micro Devices, Inc. Linux là nhãn hiệu đã đăng ký của Linus Torvalds. PCIe là nhãn hiệu đã đăng ký của PCI-SIG Corporation.

🎯 Mục tiêu học tập

  1. Định nghĩa các tính năng chính và lợi ích cốt lõi của khung HIP.
  2. Trình bày cách truy cập và truy vấn môi trường HIP bằng các công cụ hệ thống.
  3. Giải thích mối quan hệ kiến trúc giữa khả năng di chuyển của HIP và công nghệ biên dịch của nó.
  4. Thực hiện cài đặt theo từng nền tảng cụ thể cho cả môi trường NVIDIA và AMD.
  5. Điều phối quy trình xây dựng đa kho lưu trữ để biên dịch HIP từ mã nguồn.
  6. Xác minh việc cài đặt thành công bằng các công cụ cấu hình hệ thống và xác thực.
  7. Cấu hình và quản lý bộ nhớ GPU sử dụng phân bổ bộ nhớ HIP, kiểm soát tính nhất quán, và khả năng nhìn thấy bộ nhớ chủ không sao chép (zero-copy).
  8. Phát triển các kernel hiệu suất cao bằng các định danh hàm/biến đặc thù HIP, kiểu vector, và các công cụ đồng bộ hóa.
  9. Triển khai các thuật toán song song nâng cao sử dụng các chức năng như warp shuffle, vote, ballot, và nhóm hợp tác.
  10. Tự động hóa việc chuyển đổi mã CUDA sang HIP bằng công cụ HIPIFY và quản lý việc chuyển đổi dự án tại chỗ.

Bài học

Lesson

This lesson introduces the multi-vendor dilemma in high-performance computing, where hardware heterogeneity and proprietary APIs create software fragmentation and maintenance debt. Students will learn how the HIP framework addresses these challenges by enabling performance portability and simplifying the transition between different GPU architectures.

This lesson covers the installation and configuration of the Heterogeneous-compute Interface for Portability (HIP) environment, focusing on the single-source paradigm for cross-platform GPU development. Students will learn how to manage environment variables like CUDA_PATH and HIP_PATH to enable the hipcc compiler to route code effectively across NVIDIA and AMD hardware architectures.

AI022: HIP Programming Model and API Deep Dive (Lesson 3) explores the architectural foundations of the HIP ecosystem, focusing on the ROCm stack, hardware discovery, and the porting workflow from CUDA to AMD architectures. Students will learn to utilize the hipify-perl and hipcc toolchains, manage low-level HSA runtime initialization, and implement effective memory mapping for GPU resource orchestration.

This lesson explores the Heterogeneous-compute Interface for Portability (HIP), a C++ runtime API designed to enable cross-platform GPU development by abstracting hardware layers for both NVIDIA and AMD systems. Students will learn how to configure the HIP environment, utilize the hipcc compiler, and apply functional mappings to migrate legacy CUDA applications to a unified, portable codebase.