C++ AMP

C++ AMP
C++ AMP
원저작자마이크로소프트
유형도서관
면허증.미결정
웹 사이트docs.microsoft.com/en-us/cpp/parallel/amp/cpp-amp-cpp-accelerated-massive-parallelism Edit this on Wikidata

C++ Accelerated Massive Parallelism(C++ AMP)은 C++ 프로그래밍 언어와 런타임 라이브러리를 포괄하는 요소를 포함하는 네이티브 프로그래밍 모델입니다.그래픽 카드(GPU)데이터 병렬 하드웨어 상에서 컴파일 및 실행하는 프로그램을 쉽게 작성할 수 있습니다.

Visual Studio 2022(버전 17.0)부터는 C++ AMP가 폐지되어 Visual Studio 2022 이후 지원이 종료되었음을 나타냅니다.

C++ AMP는 DirectX 11에 구현된 라이브러리로 C++에 직접 데이터 병렬화를 구현하기 위한 마이크로소프트개방형 규격입니다.프로그래밍 GPU를 개발자가 쉽게 사용할 수 있도록 설계되어 있습니다.프로그래밍 GPU는 없음(이 경우 시스템이 최선을 다함)에서 보다 세밀하게 제어할 수 있지만 휴대성이 뛰어난 것까지 폭넓은 전문지식을 지원합니다.Microsoft 의 실장에서는, GPU 로 실행할 수 없는 코드는, 대신에 1 개이상의 CPU 에 폴백 해 SSE 명령을 [citation needed]사용합니다.Microsoft 의 실장은, 디버거 및 프로파일러의 서포트를 포함한 Visual Studio 2012 에 포함되어 있습니다.

Microsoft 의 초기 C++ AMP 릴리스에는, 적어도 Windows 7 또는 Windows Server 2008 R2 [1]가 필요합니다.C++ AMP는 오픈 사양이기 때문에 조만간 Microsoft 이외의 구현이 등장할 것으로 예상됩니다.이것의 초기 예로는 인텔이 Clang/LLVM 및 OpenCL에 C++ [2]AMP를 시험적으로 구현한 Shevlin Park가 있습니다.

2013년 11월 12일, HSA Foundation은 현재의 C++[3] AMP 사양을 지원하는 OpenCL, Standard Portable Intermediate Representation(SPIR) 및 HSAL Intermediate Language(HSAIL)로 출력하는 C++ AMP 컴파일러를 발표했습니다.소스는 https://github.com/RadeonOpenCompute/hcc 에서 구할 수 있습니다.C++ AMP 지원은 폐지되어 현재 ROCm 1.9 시리즈가 [4]마지막으로 지원됩니다.

병렬 및 이종 프로그래밍 기능을 표현하기 위해 C++ 클래스를 사용하는 것과 같은 C++AMP의 기본 개념은 SYCL 표준에 영감을 주었습니다.

특징들

Microsoft가 추가했습니다.restrict(amp)기능: 모든 함수(람다 포함)에 적용되어 C++ AMP 액셀러레이터에서 함수를 실행할 수 있음을 선언할 수 있습니다.컴파일러는 자동으로 컴퓨팅 커널을 생성하여 관리의 보일러 플레이트를 저장하고 별도의 언어를 사용해야 합니다.restrict 키워드는 함수가 대부분의 GPU에서 지원되는 언어 기능만 사용하는지 여부를 정적 체크하도록 컴파일러에 지시합니다.예를 들어 다음과 같습니다.void myFunc() restrict(amp) {…}Microsoft 또는 기타 오픈 C++ AMP 사양 구현자는 C++ AMP와 무관한 목적 등 다른 목적으로 다른 제한 지정자를 추가할 수 있습니다.

새로운 언어 기능 외에 나머지 C++ AMP는<amp.h>헤더 파일을 지정합니다.주요 C++ AMP 클래스는 다음과 같습니다.array(액셀러레이터의 데이터에 대응),array_view(데이터에 대응),index(N차원 점),extent(N차원 크기),accelerator(메모리를 할당하고 실행하는 GPU 등의 계산 자원)accelerator_view(액셀러레이터의 그림).글로벌 기능도 있습니다.parallel_for_eachC++ AMP 병렬루프를 쓸 때 사용합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ C++ AMP페이지 요약 끊어진 링크
  2. ^ Shevlin Park: Clang/LLVM 및 OpenCL을 사용한 C++AMP 구현
  3. ^ "Bringing C++AMP Beyond Windows via CLANG and LLVM". Retrieved January 9, 2014.
  4. ^ "Home · RadeonOpenCompute/HCC Wiki". GitHub.

추가 정보

  • 케이트 그레고리, 에이드 밀러C++A:Microsoft Visual C++를 통한 대규모 병렬 처리 가속화 - Microsoft, 2012 - 326 페이지 - ISBN 9780735664739

외부 링크