Readthedocs-Breathe Documentation Release 1.0.0
Total Page:16
File Type:pdf, Size:1020Kb
ReadTheDocs-Breathe Documentation Release 1.0.0 Thomas Edvalson Jan 23, 2019 Contents 1 Going to 11: Amping Up the Programming-Language Run-Time Foundation3 2 Solid Compilation Foundation and Language Support5 2.1 Quick Start Guide............................................5 2.1.1 Current Release Notes.....................................5 2.1.2 Installation Guide........................................5 2.1.3 Programming Guide......................................6 2.1.4 ROCm GPU Tunning Guides..................................7 2.1.5 GCN ISA Manuals.......................................7 2.1.6 ROCm API References.....................................7 2.1.7 ROCm Tools..........................................8 2.1.8 ROCm Libraries........................................9 2.1.9 ROCm Compiler SDK..................................... 10 2.1.10 ROCm System Management.................................. 10 2.1.11 ROCm Virtualization & Containers.............................. 10 2.1.12 Remote Device Programming................................. 11 2.1.13 Deep Learning on ROCm.................................... 11 2.1.14 System Level Debug...................................... 11 2.1.15 Tutorial............................................. 11 2.1.16 ROCm Glossary......................................... 12 2.2 Current Release Notes.......................................... 12 2.2.1 New features and enhancements in ROCm 2.0......................... 12 2.2.1.1 Adds support for RHEL 7.6 / CentOS 7.6 and Ubuntu 18.04.1............ 12 2.2.1.2 Adds support for Vega 7nm.............................. 12 2.2.1.3 Introduces MIVisionX................................. 12 2.2.1.4 Improvements to ROCm Libraries.......................... 12 2.2.1.5 MIOpen........................................ 12 2.2.1.6 Tensorflow multi-gpu and Tensorflow FP16 support for Vega 7nm.......... 12 2.2.1.7 PyTorch/Caffe2 with Vega 7nm Support....................... 12 2.2.1.8 Improvements to ROCProfiler tool.......................... 12 2.2.1.9 Support for hipStreamCreateWithPriority....................... 13 2.2.1.10 OpenCL 2.0 support.................................. 13 2.2.1.11 Improved Virtual Addressing (48 bit VA) management for Vega 10 and later GPUs. 13 2.2.1.12 Kubernetes support.................................. 13 2.2.1.13 Removed features................................... 13 2.2.2 New features and enhancements in ROCm 1.9.2........................ 13 i 2.2.2.1 RDMA(MPI) support on Vega 7nm.......................... 13 2.2.2.2 Improvements to HCC................................. 13 2.2.2.3 Improvements to ROCProfiler tool.......................... 13 2.2.2.4 Critical bug fixes.................................... 13 2.2.3 New features and enhancements in ROCm 1.9.1........................ 13 2.2.3.1 Added DPM support to Vega 7nm........................... 13 2.2.3.2 Fix for ‘ROCm profiling’ “Version mismatch between HSA runtime and libhsa- runtime-tools64.so.1” error.............................. 14 2.2.4 New features and enhancements in ROCm 1.9.0........................ 14 2.2.4.1 Preview for Vega 7nm................................. 14 2.2.4.2 System Management Interface............................ 14 2.2.4.3 Improvements to HIP/HCC.............................. 14 2.2.4.4 Preview for rocprof Profiling Tool........................... 14 2.2.4.5 Preview for rocr Debug Agent rocr_debug_agent................... 14 2.2.4.6 New distribution support............................... 14 2.2.4.7 ROCm 1.9 is ABI compatible with KFD in upstream Linux kernels.......... 15 2.3 ROCm Installation Guide........................................ 15 2.3.1 Current ROCm Version: 2.0.................................. 15 2.3.2 Hardware Support........................................ 15 2.3.2.1 Supported GPUs.................................... 15 2.3.2.2 Supported CPUs.................................... 16 2.3.2.3 Not supported or limited support under ROCm.................... 17 2.3.2.3.1 Limited support............................... 17 2.3.2.3.2 Not supported................................ 17 2.3.3 The latest ROCm platform - ROCm 2.0............................ 17 2.3.3.1 Supported Operating Systems - New operating systems available.......... 19 2.3.3.2 ROCm support in upstream Linux kernels...................... 19 2.3.4 Installing from AMD ROCm repositories........................... 20 2.3.4.1 ROCm Binary Package Structure........................... 20 2.3.4.2 Ubuntu Support - installing from a Debian repository................ 22 2.3.4.2.1 First make sure your system is up to date.................. 22 2.3.4.2.2 Add the ROCm apt repository....................... 22 2.3.4.2.3 Install.................................... 22 2.3.4.2.4 Next set your permissions.......................... 22 2.3.4.2.5 Test basic ROCm installation........................ 23 2.3.4.2.6 Performing an OpenCL-only Installation of ROCm............ 23 2.3.4.2.7 How to uninstall from Ubuntu 16.04 or Ubuntu 18.04........... 23 2.3.4.2.8 Installing development packages for cross compilation.......... 23 2.3.4.2.9 Using Debian-based ROCm with upstream kernel drivers......... 24 2.3.4.3 CentOS/RHEL 7 (7.4, 7.5, 7.6) Support........................ 24 2.3.4.3.1 Preparing RHEL 7 (7.4, 7.5, 7.6) for installation.............. 24 2.3.4.3.2 Install and setup Devtoolset-7........................ 24 2.3.4.3.3 Prepare CentOS/RHEL (7.4, 7.5, 7.6) for DKMS Install.......... 25 2.3.4.3.4 Installing ROCm on the system....................... 25 2.3.4.3.5 Set up permissions............................. 25 2.3.4.3.6 Compiling applications using HCC, HIP, and other ROCm software... 26 2.3.4.3.7 How to uninstall ROCm from CentOS/RHEL 7.4, 7.5 and 7.6....... 26 2.3.4.3.8 Installing development packages for cross compilation.......... 26 2.3.4.3.9 Using ROCm with upstream kernel drivers................. 26 2.3.5 Known issues / workarounds.................................. 27 2.3.5.1 HCC: removed support for C++AMP in ROCm 2.0................. 27 2.3.5.2 HipCaffe is supported on single GPU configurations................. 27 ii 2.3.5.3 The ROCm SMI library calls to rsmi_dev_power_cap_set() and rsmi_dev_power_profile_set() will not work for all but the first gpu in multi- gpu set ups....................................... 27 2.3.6 Closed source components................................... 27 2.3.7 Getting ROCm source code................................... 27 2.3.7.1 Installing repo..................................... 27 2.3.7.2 Downloading the ROCm source code......................... 27 2.3.7.3 Building the ROCm source code........................... 28 2.3.8 Final notes........................................... 28 2.4 Programming Guide........................................... 28 2.4.1 ROCm Languages........................................ 28 2.4.1.1 ROCm, Lingua Franca, C++, OpenCL and Python.................. 28 2.4.1.2 HCC: Heterogeneous Compute Compiler....................... 28 2.4.1.3 When to Use HC.................................... 29 2.4.1.4 HIP: Heterogeneous-Computing Interface for Portability.............. 29 2.4.1.5 When to Use HIP................................... 29 2.4.1.6 OpenCL™: Open Compute Language........................ 29 2.4.1.7 When to Use OpenCL................................. 29 2.4.1.8 Anaconda Python With Numba............................ 29 2.4.1.9 Numba......................................... 30 2.4.1.10 When to Use Anaconda................................ 30 2.4.1.11 Wrap-Up........................................ 30 2.4.1.12 Table Comparing Syntax for Different Compute APIs................ 32 2.4.1.13 Notes.......................................... 33 2.4.2 HC Programming Guide.................................... 33 2.4.2.1 Platform Requirements................................ 33 2.4.2.2 Compiler Backends.................................. 34 2.4.2.3 Installation....................................... 34 2.4.2.4 Ubuntu......................................... 34 2.4.2.5 Download HCC.................................... 34 2.4.2.6 Build HCC from source................................ 35 2.4.2.7 Use HCC........................................ 36 2.4.2.8 Multiple ISA...................................... 36 2.4.2.9 CodeXL Activity Logger............................... 37 2.4.3 HC Best Practices........................................ 37 2.4.3.1 HCC built-in macros.................................. 38 2.4.3.2 HC-specific features.................................. 38 2.4.3.3 Differences between HC API and C++ AMP..................... 39 2.4.3.4 HCC Profile Mode................................... 40 2.4.3.4.1 Kernel Commands............................. 40 2.4.3.4.2 Memory Copy Commands......................... 41 2.4.3.4.3 Barrier Commands............................. 42 2.4.3.4.4 Overhead.................................. 43 2.4.3.4.5 Additional Details and tips......................... 43 2.4.3.5 API documentation.................................. 43 2.4.4 HIP Programing Guide..................................... 43 2.4.5 HIP Best Practices....................................... 44 2.4.6 OpenCL Programing Guide................................... 44 2.4.7 OpenCL Best Practices..................................... 44 2.5 ROCm GPU Tuning Guides....................................... 44 2.5.1 GFX7 Tuning Guide...................................... 44 2.5.2 GFX8 Tuning Guide...................................... 44 2.5.3 Vega Tuning Guide....................................... 44 2.6 GCN ISA Manuals...........................................