NVIDIA HPC SDK™
- NVIDIA HPC SDK™
-
類別程式開發軟體
-
介紹容器是一種基於Linux名稱空間的輕量級虛擬化技術。與虛擬機不同,容器與主機共享內核和其他服務。結果,容器可以非常快速地啟動,並且性能開銷可以忽略不計,但是它們不能提供虛擬機的完全隔離。 容器將整個應用程序用戶空間環境捆綁到一個映像中。這樣,應用程序環境既可移植又一致,並且與底層主機系統軟件配置無關。容器映像可以廣泛部署,甚至可以與其他人共享,並確信結果將可重現。 容器使開發人員,用戶和系統管理員的工作變得更加輕鬆。開發人員可以在容器中分發軟件,以提供一致的運行時環境並減少支持開銷。來自諸如NGC之類的存儲庫的容器映像可以幫助用戶在任何系統上快速啟動,並避免從源代碼進行構建的複雜性。容器還可以幫助IT人員控制環境模塊的複雜性,並支持不再與主機操作系統兼容的舊式工作負載。 容器運行時很多。最重要的兩個是Docker和Singularity。 在Docker Containers部分中進一步描述的Docker幫助普及了Linux容器,並被廣泛使用。 “奇異性容器”一節中進一步介紹了奇異性,它解決了在HPC環境中使用容器的一些挑戰,並且在大多數HPC中心都可以使用。
NVIDIA HPC SDK™
a comprehensive suite of compilers and libraries enabling developers to program the entire HPC platform, from the GPU foundation to the CPU and out through the interconnect.
Key features that are new in the 21.3 release of the NVIDIA HPC SDK for Linux include:
The HPC SDK now includes the HPC-X toolkit, a comprehensive software package that includes MPI, SHMEM/PGAS communications libraries and various acceleration packages.
C++ Standard Language Parallelism is now supported on multicore CPUs via the -stdpar=multicore command line flag.
The HPC SDK now includes 64-bit versions of the host-only OpenBLAS libraries, which have '_ilp64.*" suffixes on the filenames.
GPU Math Libraries
The NVIDIA HPC SDK includes a suite of GPU-accelerated math libraries for compute-intensive applications. The cuBLAS and cuSOLVER libraries provide GPU-optimized and multi-GPU implementations of all BLAS routines and core routines from LAPACK, automatically using NVIDIA GPU Tensor Cores where possible. cuFFT includes GPU-accelerated 1D, 2D, and 3D FFT routines for real and complex data, and cuSPARSE provides basic linear algebra subroutines for sparse matrices. These libraries are callable from CUDA and OpenACC programs written in C, C++ and Fortran.
Optimized for Tensor Cores
Heterogeneous HPC servers use GPUs for accelerated computing and multicore CPUs based on the x86-64, OpenPOWER or Arm instruction set architectures. NVIDIA HPC compilers and tools are supported on all of these CPUs, and all compiler optimizations are fully enabled on any CPU that supports them. With uniform features, command-line options, language implementations, programming models, and tool and library user interfaces across all supported systems, the NVIDIA HPC SDK simplifies the developer experience in diverse HPC environments.
Multi-GPU Programming
The NVIDIA Collective Communications Library (NCCL) implements highly optimized multi-GPU and multi-node collective communication primitives using MPI-compatible all-gather, all-reduce, broadcast, reduce, and reduce-scatter routines to take advantage of all available GPUs within and across your HPC server nodes. NVSHMEM implements the OpenSHMEM standard for GPU memory and provides multi-GPU and multi-node communication primitives that can be initiated from a host CPU or GPU and called from within a CUDA kernel.
Scalable Systems Programming
MPI is the standard for programming distributed-memory scalable systems. The NVIDIA HPC SDK includes a CUDA-aware MPI library based on Open MPI with support for GPUDirect™ so you can send and receive GPU buffers directly using remote direct memory access (RDMA), including buffers allocated in CUDA Unified Memory. CUDA-aware Open MPI is fully compatible with CUDA C/C++, CUDA Fortran and the NVIDIA OpenACC compilers.
Nsight Performance Profiling
Nsight™ Systems provides system-wide visualization of application performance on HPC servers and enables you to optimize away bottlenecks and scale parallel applications across multicore CPUs and GPUs. Nsight Compute allows you to deep dive into GPU kernels in an interactive profiler for GPU-accelerated applications via a graphical or command-line user interface, and allows you to pinpoint performance bottlenecks using the NVTX API to directly instrument regions of your source code.
Deploy Anywhere
Containers simplify software deployment by bundling applications and their dependencies into portable virtual environments. The NVIDIA HPC SDK includes instructions for developing, profiling, and deploying software using the HPC Container Maker to simplify the creation of container images. The NVIDIA Container Runtime enables seamless GPU support in virtually all container frameworks, including Docker and Singularity.
HPC Compilers Support Services
HPC Compiler Support Services provide access to NVIDIA technical experts, including:
Paid technical support for the NVFORTRAN, NVC++ and NVC compilers (NVCC excluded).
Help with installation and usage of NVFORTRAN, NVC++ and NVC compilers.
Confirmation of bug reports, prioritization of bug fixes above those from non-paid users.
Where possible, help with temporary workarounds for confirmed compiler bugs.
Access to release archives including both HPC SDK and legacy PGI packages.
系統需求
Linux發行版:
CentOS 7.2、7.3、7.4、7.5、7.6、7.7、7.8
CentOS 7.9、8.0、8.1、8.2
Fedora
29、30、31、32 OpenSUSE Leap 15.0、15.1
RHEL 7.0、7.1、7.2、7.3、7.4、7.5、7.6, 7.7,7.8,7.9
RHEL 8.0,8.1,8.2
SLES 12SP4,12SP5,15SP1
的Ubuntu 16.04,18.04,19.10,20.04
最低gcc / glibc工具鏈:
C99:4.8
C11:4.9
C ++ 03:4.8
C ++ 11:4.9
C ++ 14:5.1
C ++ 17:7.1
最低CUDA驅動程序
440.33
ppc64le
Linux發行版:
RHEL
7.3、7.4、7.5、7.6、7.7、8.0、8.1 RHEL Pegas 7.5、7.6
Ubuntu 16.04、18.04
最低gcc / glibc工具鏈:
C99:4.8
C11:4.9
C ++ 03:4.8
C ++ 11:4.9
C ++ 14:5.1
C ++ 17:7.1
最低CUDA驅動程序
440.33
aarch64
Linux發行版:
RHEL 8.1
Ubuntu 18.04
最低gcc / glibc工具鏈:
C99:4.8
C11:4.9
C ++ 03:4.8
C ++ 11:4.9
C ++ 14:5.1
C ++ 17:7.1
最低CUDA驅動程序
450.36
NVIDIA HPC SDK™
這是一套全面的編譯器和庫,使開發人員能夠對整個HPC平台進行編程,從GPU基礎到CPU,再到互連。
用於Linux的NVIDIA HPC SDK 21.3版本中新增的主要功能包括:
HPC SDK現在包括HPC-X工具包,這是一個全面的軟件包,其中包括MPI,SHMEM / PGAS通信庫和各種加速軟件包。
現在,通過-stdpar = multicore命令行標誌在多核CPU上支持C ++標準語言並行性。
HPC SDK現在包括僅主機的OpenBLAS庫的64位版本,這些文件名的後綴為“ _ilp64。*”。
GPU數學庫
NVIDIA HPC SDK包括一套GPU加速的數學庫,用於計算密集型應用程序。cuBLAS和cuSOLVER庫提供了LAPACK中所有BLAS例程和核心例程的GPU優化和多GPU實現,並在可能的情況下自動使用NVIDIA GPU Tensor Core。cuFFT包括針對真實和復雜數據的GPU加速的1D,2D和3D FFT例程,而cuSPARSE為稀疏矩陣提供了基本的線性代數子例程。
這些數學庫可從用C,C ++和Fortran編寫的CUDA和OpenACC程序中調用。
針對Tensor核心進行了優化
NVIDIA GPU Tensor Core使科學家和工程師可以使用混合精度或雙精度來極大地加速合適的算法。NVIDIA HPC SDK數學庫針對Tensor Core和multi-GPU節點進行了優化,以最少的編碼工作即可發揮系統的全部性能潛力。使用NVIDIA Fortran編譯器,您可以通過將轉換數組內在函數自動映射到cuTENSOR庫來利用Tensor Core。
多GPU編程
NVIDIA集體通信庫(NCCL)使用MPI兼容的全聚集,全減少,廣播,減少和減少散射例程,實現高度優化的多GPU和多節點集體通信原語,以利用其中的所有可用GPU以及整個HPC服務器節點。NVSHMEM為GPU內存實現了OpenSHMEM標準,並提供了可從主機CPU或GPU發起並在CUDA內核中調用的多GPU和多節點通信原語。
可擴展系統編程
MPI是用於編程分佈式內存可伸縮系統的標準。NVIDIA HPC SDK包括一個基於Open MPI的CUDA感知MPI庫,並支持GPUDirect™,因此您可以使用遠程直接內存訪問(RDMA)直接發送和接收GPU緩衝區,包括在CUDA統一內存中分配的緩衝區。支持CUDA的Open MPI與CUDA C / C ++,CUDA Fortran和NVIDIA OpenACC編譯器完全兼容。
Nsight性能分析
Nsight™系統提供HPC服務器上應用程序性能的全系統可視化,使您能夠優化瓶頸並在多核CPU和GPU之間擴展並行應用程序。Nsight Compute允許您通過圖形或命令行用戶界面在用於GPU加速的應用程序的交互式探查器中深入研究GPU內核,並允許您使用NVTX API來直接檢測源代碼區域來確定性能瓶頸。
隨時隨地部署
容器通過將應用程序及其依賴項捆綁到便攜式虛擬環境中來簡化軟件部署。NVIDIA HPC SDK包含有關使用HPC Container Maker開發,配置和部署軟件的說明,以簡化容器映像的創建。NVIDIA容器運行時可在幾乎所有容器框架(包括Docker和Singularity)中實現無縫GPU支持。
HPC編譯器支持服務
HPC編譯器支持服務提供了與NVIDIA技術專家的聯繫,其中包括:
對NVFORTRAN,NVC ++和NVC編譯器的付費技術支持(不包括NVCC)。
幫助安裝和使用NVFORTRAN,NVC ++和NVC編譯器。
錯誤報告的確認,錯誤修復的優先級高於非付費用戶的錯誤修復。
在可能的情況下,針對已確認的編譯器錯誤提供臨時解決方法的幫助。
訪問發布檔案,包括HPC SDK和舊版PGI軟件包。
PC-lint Plus 1.4程式開發軟體
PC-lint Plus是Gimpel Software的最新產品,可為C和C ++提供無與倫比的分析功能。
Visual Paradigm 16.2 程式開發軟體
Visual Paradigm 將VP的獲獎開發工具結合到套包裡以滿足每一位開發人員的需求。因為它靈活的控件架構,你可以從Visual Paradigm Suite 安裝檔案裡的所有控件中選擇安裝你所需要的工具包。節約你的下載時間並為你提供充分的自由能在評估期內在不同版本或產品之間切換。
Altova 2021 程式開發工具軟體
Altova公司®是一家軟件公司,專門在幫助開發數據管理,軟件和應用開發,移動開發和數據集成工具。 Altova為XML,SQL和UML提供了一整套桌面開發軟件; 高性能工作流程自動化服務器產品; 和跨平台的移動開發框架。