From c3cb5ab6856046d7ff9f14edaf5f92fc927470f2 Mon Sep 17 00:00:00 2001 From: James Perry Date: Mon, 10 Feb 2025 14:41:00 -0700 Subject: [PATCH 1/2] Initial skeleton of HPC documentation --- docs/hpc-apps/compatibility-list.rst | 7 +++++++ docs/hpc-apps/recommended-apps.rst | 7 +++++++ .../getting-started-on-a-supercomputer.rst | 7 +++++++ docs/introduction/getting-started.rst | 7 +++++++ docs/introduction/index.rst | 0 docs/introduction/intro-to-gpu-programming.rst | 13 +++++++++++++ docs/introduction/intro-to-hpc.rst | 7 +++++++ docs/library-manual/hipfft.rst | 7 +++++++ docs/library-manual/index.rst | 7 +++++++ docs/library-manual/linear-algebra/index.rst | 7 +++++++ docs/porting-guide/cuda-to-hip.rst | 7 +++++++ docs/porting-guide/openacc-to-openmp.rst | 7 +++++++ docs/programming-guide/debugger.rst | 7 +++++++ docs/programming-guide/design-patterns/index.rst | 7 +++++++ docs/programming-guide/fortran.rst | 7 +++++++ docs/programming-guide/hip-manual/index.rst | 7 +++++++ docs/programming-guide/index.rst | 7 +++++++ .../instinct-architecture/index.rst | 7 +++++++ docs/programming-guide/multinode/index.rst | 7 +++++++ docs/programming-guide/openmp-for-gpu.rst | 7 +++++++ docs/programming-guide/openmp.rst | 7 +++++++ docs/programming-guide/optimization/index.rst | 7 +++++++ docs/programming-guide/profiler.rst | 7 +++++++ 23 files changed, 160 insertions(+) create mode 100644 docs/hpc-apps/compatibility-list.rst create mode 100644 docs/hpc-apps/recommended-apps.rst create mode 100644 docs/introduction/getting-started-on-a-supercomputer.rst create mode 100644 docs/introduction/getting-started.rst create mode 100644 docs/introduction/index.rst create mode 100644 docs/introduction/intro-to-gpu-programming.rst create mode 100644 docs/introduction/intro-to-hpc.rst create mode 100644 docs/library-manual/hipfft.rst create mode 100644 docs/library-manual/index.rst create mode 100644 docs/library-manual/linear-algebra/index.rst create mode 100644 docs/porting-guide/cuda-to-hip.rst create mode 100644 docs/porting-guide/openacc-to-openmp.rst create mode 100644 docs/programming-guide/debugger.rst create mode 100644 docs/programming-guide/design-patterns/index.rst create mode 100644 docs/programming-guide/fortran.rst create mode 100644 docs/programming-guide/hip-manual/index.rst create mode 100644 docs/programming-guide/index.rst create mode 100644 docs/programming-guide/instinct-architecture/index.rst create mode 100644 docs/programming-guide/multinode/index.rst create mode 100644 docs/programming-guide/openmp-for-gpu.rst create mode 100644 docs/programming-guide/openmp.rst create mode 100644 docs/programming-guide/optimization/index.rst create mode 100644 docs/programming-guide/profiler.rst diff --git a/docs/hpc-apps/compatibility-list.rst b/docs/hpc-apps/compatibility-list.rst new file mode 100644 index 00000000..8288c36d --- /dev/null +++ b/docs/hpc-apps/compatibility-list.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Known Compatibility List for AMD Instinct + :keywords: AMD, Instinct, ROCm, GPU, applications, compatibility + +**************************************************************** +Known Compatibility List for AMD Instinct +**************************************************************** diff --git a/docs/hpc-apps/recommended-apps.rst b/docs/hpc-apps/recommended-apps.rst new file mode 100644 index 00000000..0843cd14 --- /dev/null +++ b/docs/hpc-apps/recommended-apps.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Recommended Applications for Scientific Computing on AMD Instinct + :keywords: AMD, Instinct, ROCm, GPU, applications, compatibility + +**************************************************************** +Recommended Applications for Scientific Computing on AMD Instinct +**************************************************************** diff --git a/docs/introduction/getting-started-on-a-supercomputer.rst b/docs/introduction/getting-started-on-a-supercomputer.rst new file mode 100644 index 00000000..d58c4926 --- /dev/null +++ b/docs/introduction/getting-started-on-a-supercomputer.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Getting Started on an AMD Instinct Supercomputer + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, supercomputer + +**************************************************************** +Getting Started on an AMD Instinct Supercomputer +**************************************************************** diff --git a/docs/introduction/getting-started.rst b/docs/introduction/getting-started.rst new file mode 100644 index 00000000..d1c7dc35 --- /dev/null +++ b/docs/introduction/getting-started.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Getting Started with AMD Instinct and ROCm + :keywords: AMD, Instinct, ROCm, HIP, GPU + +**************************************************************** +Getting Started with AMD Instinct and ROCm +**************************************************************** diff --git a/docs/introduction/index.rst b/docs/introduction/index.rst new file mode 100644 index 00000000..e69de29b diff --git a/docs/introduction/intro-to-gpu-programming.rst b/docs/introduction/intro-to-gpu-programming.rst new file mode 100644 index 00000000..b60033a8 --- /dev/null +++ b/docs/introduction/intro-to-gpu-programming.rst @@ -0,0 +1,13 @@ +.. meta:: + :description: Introduction to GPU Programming + :keywords: AMD, Instinct, ROCm, HIP, GPU + +**************************************************************** +Introduction to GPU Programming +**************************************************************** + +# Differences between GPU and CPU Programming + +# GPU Architectures + +# Programming Models \ No newline at end of file diff --git a/docs/introduction/intro-to-hpc.rst b/docs/introduction/intro-to-hpc.rst new file mode 100644 index 00000000..2ac1dcad --- /dev/null +++ b/docs/introduction/intro-to-hpc.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Introduction to HPC and Scientific Computing + :keywords: AMD, Instinct, ROCm, GPU, HPC + +**************************************************************** +Introduction to HPC and Scientific Computing +**************************************************************** diff --git a/docs/library-manual/hipfft.rst b/docs/library-manual/hipfft.rst new file mode 100644 index 00000000..41d0442d --- /dev/null +++ b/docs/library-manual/hipfft.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: ROCm Library Manual - hipFFT + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, libraries, math libraries, fft + +**************************************************************** +ROCm Library Manual - hipFFT +**************************************************************** diff --git a/docs/library-manual/index.rst b/docs/library-manual/index.rst new file mode 100644 index 00000000..c4987706 --- /dev/null +++ b/docs/library-manual/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: ROCm Library Manual + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, libraries, math libraries, linear algebra, fft + +**************************************************************** +ROCm Library Manual +**************************************************************** diff --git a/docs/library-manual/linear-algebra/index.rst b/docs/library-manual/linear-algebra/index.rst new file mode 100644 index 00000000..94233c5a --- /dev/null +++ b/docs/library-manual/linear-algebra/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: ROCm Library Manual - Linear Algebra Libraries + :keywords: AMD, Instinct, ROCm, GPU, HPC, libraries, math libraries, linear algebra + +**************************************************************** +ROCm Library Manual - Linear Algebra Libraries +**************************************************************** diff --git a/docs/porting-guide/cuda-to-hip.rst b/docs/porting-guide/cuda-to-hip.rst new file mode 100644 index 00000000..ce995168 --- /dev/null +++ b/docs/porting-guide/cuda-to-hip.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Porting Applications from CUDA to HIP + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, porting, CUDA + +**************************************************************** +Porting Applications from CUDA to HIP +**************************************************************** diff --git a/docs/porting-guide/openacc-to-openmp.rst b/docs/porting-guide/openacc-to-openmp.rst new file mode 100644 index 00000000..61e24b1b --- /dev/null +++ b/docs/porting-guide/openacc-to-openmp.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Porting Applications from OpenMP to OpenACC + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, porting, OpenMP, OpenACC + +**************************************************************** +Porting Applications from CUDA to HIP +**************************************************************** diff --git a/docs/programming-guide/debugger.rst b/docs/programming-guide/debugger.rst new file mode 100644 index 00000000..2309445e --- /dev/null +++ b/docs/programming-guide/debugger.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Debugging Applications on AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, debugging + +**************************************************************** +Debugging Applications on AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/design-patterns/index.rst b/docs/programming-guide/design-patterns/index.rst new file mode 100644 index 00000000..be38cc60 --- /dev/null +++ b/docs/programming-guide/design-patterns/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Design Patterns and Algorithms for AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, design patterns, algorithms + +**************************************************************** +Design Patterns and Algorithms for AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/fortran.rst b/docs/programming-guide/fortran.rst new file mode 100644 index 00000000..d689540c --- /dev/null +++ b/docs/programming-guide/fortran.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Fortran Programming Manual for AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, Fortran + +**************************************************************** +Fortran Programming Manual for AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/hip-manual/index.rst b/docs/programming-guide/hip-manual/index.rst new file mode 100644 index 00000000..af46fc54 --- /dev/null +++ b/docs/programming-guide/hip-manual/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: HIP Programming Manual + :keywords: AMD, Instinct, ROCm, HIP, GPU + +**************************************************************** +HIP Programming Manual +**************************************************************** diff --git a/docs/programming-guide/index.rst b/docs/programming-guide/index.rst new file mode 100644 index 00000000..5ba05f9f --- /dev/null +++ b/docs/programming-guide/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Progrmaming Guide for AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, Fortran, C++, OpenMP + +**************************************************************** +Programming Guide for AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/instinct-architecture/index.rst b/docs/programming-guide/instinct-architecture/index.rst new file mode 100644 index 00000000..6ec2f847 --- /dev/null +++ b/docs/programming-guide/instinct-architecture/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: AMD Instinct Architecture + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, computer architecture + +**************************************************************** +AMD Instinct Architecture +**************************************************************** diff --git a/docs/programming-guide/multinode/index.rst b/docs/programming-guide/multinode/index.rst new file mode 100644 index 00000000..9712bfb9 --- /dev/null +++ b/docs/programming-guide/multinode/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Multi-node and Multi-GPU programming with AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, multinode, multigpu, supercomputer + +**************************************************************** +Multi-node and Multi-GPU programming with AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/openmp-for-gpu.rst b/docs/programming-guide/openmp-for-gpu.rst new file mode 100644 index 00000000..6f9bc1ad --- /dev/null +++ b/docs/programming-guide/openmp-for-gpu.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: OpenMP for GPU Specification + :keywords: AMD, Instinct, ROCm, HIP, GPU, OpenMP + +**************************************************************** +OpenMP for GPU Specification +**************************************************************** diff --git a/docs/programming-guide/openmp.rst b/docs/programming-guide/openmp.rst new file mode 100644 index 00000000..9e60d353 --- /dev/null +++ b/docs/programming-guide/openmp.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: OpenMP Programming Manual for AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, Fortran, C++, OpenMP + +**************************************************************** +OpenMP Programming Manual for AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/optimization/index.rst b/docs/programming-guide/optimization/index.rst new file mode 100644 index 00000000..d659d47a --- /dev/null +++ b/docs/programming-guide/optimization/index.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Optimization Applications for AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, HPC, supercomputer, profiling, optimization + +**************************************************************** +Optimization Applications for AMD Instinct +**************************************************************** diff --git a/docs/programming-guide/profiler.rst b/docs/programming-guide/profiler.rst new file mode 100644 index 00000000..833e3912 --- /dev/null +++ b/docs/programming-guide/profiler.rst @@ -0,0 +1,7 @@ +.. meta:: + :description: Profiling Applications on AMD Instinct + :keywords: AMD, Instinct, ROCm, HIP, GPU, profiling + +**************************************************************** +Profiling Applications on AMD Instinct +**************************************************************** From 15d456a428e85e3f0e353ea9be3b3008cdc2c688 Mon Sep 17 00:00:00 2001 From: James Perry Date: Mon, 10 Feb 2025 16:38:24 -0700 Subject: [PATCH 2/2] Updates to skeleton. --- docs/introduction/index.rst | 15 +++++ .../introduction/intro-to-gpu-programming.rst | 45 +++++++++++++-- docs/library-manual/linear-algebra/index.rst | 7 --- docs/programming-guide/hip-manual/index.rst | 55 ++++++++++++++++++- docs/programming-guide/index.rst | 9 +-- .../instinct-architecture/index.rst | 1 + 6 files changed, 114 insertions(+), 18 deletions(-) delete mode 100644 docs/library-manual/linear-algebra/index.rst diff --git a/docs/introduction/index.rst b/docs/introduction/index.rst index e69de29b..94e442e0 100644 --- a/docs/introduction/index.rst +++ b/docs/introduction/index.rst @@ -0,0 +1,15 @@ +.. meta:: + :description: Introduction to AMD Instinct™ Accelerators + :keywords: AMD, Instinct, ROCm, HIP, GPU + +Introduction to AMD Instinct™ Accelerators +****************************************** + +* :doc:`intro-to-hpc` +* :doc:`intro-to-gpu-programming` + +Getting Started with AMD Instinct™ +================================== + +* :doc:`getting-started` +* :doc:`getting-started-on-a-supercomputer` \ No newline at end of file diff --git a/docs/introduction/intro-to-gpu-programming.rst b/docs/introduction/intro-to-gpu-programming.rst index b60033a8..223b3f35 100644 --- a/docs/introduction/intro-to-gpu-programming.rst +++ b/docs/introduction/intro-to-gpu-programming.rst @@ -2,12 +2,47 @@ :description: Introduction to GPU Programming :keywords: AMD, Instinct, ROCm, HIP, GPU -**************************************************************** Introduction to GPU Programming -**************************************************************** +******************************* -# Differences between GPU and CPU Programming +This document is intended for programmers, computational scientists, and others who are interested in the use of GPUs +to accelerate applications. -# GPU Architectures +GPU Architecture Basics +======================= -# Programming Models \ No newline at end of file +* How does a GPU differ from a CPU? +* Homogeneous vs heterogenous Computing +* Highly parallel design +* Memory architectures in heterogeneous architectures +* What kind of algorithms map well to GPUs? + +Programming Models +================== + +* How to choose a programming model + +Native Programming +------------------ + +Directive-based Programming +--------------------------- + +Standards-based Paralleism +-------------------------- + +High-level languages and frameworks +----------------------------------- + +Parallel Frameworks +^^^^^^^^^^^^^^^^^^^ + +* Kokkos +* Raja + +AI Frameworks +^^^^^^^^^^^^^ + +* PyTorch +* TensorFlow +* Triton \ No newline at end of file diff --git a/docs/library-manual/linear-algebra/index.rst b/docs/library-manual/linear-algebra/index.rst deleted file mode 100644 index 94233c5a..00000000 --- a/docs/library-manual/linear-algebra/index.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. meta:: - :description: ROCm Library Manual - Linear Algebra Libraries - :keywords: AMD, Instinct, ROCm, GPU, HPC, libraries, math libraries, linear algebra - -**************************************************************** -ROCm Library Manual - Linear Algebra Libraries -**************************************************************** diff --git a/docs/programming-guide/hip-manual/index.rst b/docs/programming-guide/hip-manual/index.rst index af46fc54..1cc63d73 100644 --- a/docs/programming-guide/hip-manual/index.rst +++ b/docs/programming-guide/hip-manual/index.rst @@ -2,6 +2,57 @@ :description: HIP Programming Manual :keywords: AMD, Instinct, ROCm, HIP, GPU -**************************************************************** HIP Programming Manual -**************************************************************** +********************** + +* Link to Instinct Architecture Guide + +Introduction +============ + +* Simple example of a kernel + +Programming Model +================= + +Device Code +----------- + +* Device vs host execution + +Structure of a Kernel +--------------------- + +* SIMT model +* Blocks, grids, warps + + +Inherent Thread Model +^^^^^^^^^^^^^^^^^^^^^ + +Cooperative Groups Thread Model +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Mapping to Hardware +------------------- + +Memory Architecture +=================== + +Runtime API +=========== + +Sychronization and Asychronous Execution +---------------------------------------- + +Streams +------- + +Task Graphs +----------- + +Error Handling +-------------- + +Compiler Toolchain +================== \ No newline at end of file diff --git a/docs/programming-guide/index.rst b/docs/programming-guide/index.rst index 5ba05f9f..884a36c5 100644 --- a/docs/programming-guide/index.rst +++ b/docs/programming-guide/index.rst @@ -1,7 +1,8 @@ .. meta:: - :description: Progrmaming Guide for AMD Instinct + :description: Progrmaming Guide for AMD Instinct™ :keywords: AMD, Instinct, ROCm, HIP, GPU, Fortran, C++, OpenMP -**************************************************************** -Programming Guide for AMD Instinct -**************************************************************** +Programming Guide for AMD Instinct™ +*********************************** + +* :doc:`instinct-architecture` diff --git a/docs/programming-guide/instinct-architecture/index.rst b/docs/programming-guide/instinct-architecture/index.rst index 6ec2f847..83b70c9a 100644 --- a/docs/programming-guide/instinct-architecture/index.rst +++ b/docs/programming-guide/instinct-architecture/index.rst @@ -5,3 +5,4 @@ **************************************************************** AMD Instinct Architecture **************************************************************** +