인텔 DPC++ 호환성 도구 

인텔 DPC++ 호환성 도구

인텔® DPC+ + 호환성 도구 시작하기

인텔® DPC++ 호환성 도구는 CUDA*로 작성된 개발자 프로그램을 최신 C++를 기반으로 하고 SYCL*과 같은 휴대용 산업 표준을 통합하는 DPC++(Data Parallel C++)로 작성된 프로그램으로 마이그레이션하는 것을 지원합니다.

  • 도구에 대한 추가 정보는 인텔® DPC++ 호환성 도구 개발자 안내서 및 참조를 방문하십시오.
  • 알려진 문제 및 최신 정보는 릴리스 정보를 참조하십시오.

메모 인텔® DPC++ 호환성 도구를 사용하면 프로젝트가 완전히 마이그레이션되지 않습니다. 마이그레이션을 완료하려면 인텔® DPC++ 호환성 도구의 출력에 요약된 대로 추가 작업이 필요합니다.

시작하기 전에

인텔® DPC++ 호환성 도구는 인텔® oneAPI 기본 툴킷에 포함되어 있습니다. Intel® oneAPI Base Toolkit을 설치하지 않은 경우 설치 안내서의 지침을 따르십시오.

특정 CUDA 헤더 files(프로젝트에 따라 다름)는 인텔® DPC++에 액세스해야 할 수 있습니다.
호환성 도구. 인텔® DPC++ 호환성 도구는 다음 CUDA 헤더를 찾습니다. file기본 위치:

  • /usr/local/쿠다/포함
  • /usr/local/cuda-xy/include, 여기서 xy는 8.0, 9.x, 10.x 및 11.0–11.6 값 중 하나입니다.

–cuda-include-path=로 지정하여 사용자 지정 위치를 참조할 수 있습니다. 인텔® DPC++ 호환성 도구 명령줄의 옵션.

메모 CUDA 포함 경로는 마이그레이션해야 하는 소스 코드가 있는 디렉토리와 동일하거나 하위 경로가 아니어야 합니다.

현재 인텔® DPC++ 호환성 도구는 CUDA 버전 8.0, 9.x, 10.x 및 11.0–11.6으로 구현된 프로그램의 마이그레이션을 지원합니다. 지원되는 언어 및 버전 목록은 향후 확장될 수 있습니다.

인텔® DPC++ 호환성 도구 환경을 설정하려면 다음을 실행하십시오.

  • Linux에서(sudo): 소스 /opt/intel/oneapi/setvars.sh
  • Linux(사용자): 소스 ~/intel/oneapi/setvars.sh
  • 윈도우에서 :드라이브:\ 프로그램 Files (x86)\Intel\oneAPI\setvars.bat

운영 체제 셸의 일반 호출 구문은 다음과 같습니다.

dpct [옵션] [ … ]

메모 c2s는 dpct 명령의 별칭이며 대신 사용할 수 있습니다.

내장된 사용 정보 

인텔® DPC++ 호환성 도구 관련 옵션 목록을 보려면 –help를 사용하십시오.

dpct –도움말

언어 파서(Clang*) 옵션 목록을 보려면 -help를 Clang 옵션으로 전달합니다.

dpct — -도움말
방출된 경고

인텔® DPC++ 호환성 도구는 마이그레이션 중에 주의가 필요할 수 있는 코드의 위치를 ​​식별합니다. file코드 SYCL을 준수하거나 수정하기 위해.
주석은 생성된 소스에 삽입됩니다. files 및 출력에 경고로 표시됩니다. 예를 들어amp르 :

/경로/로/file.hpp:26:1: 경고: DPCT1003:0: 마이그레이션된 API가 오류 코드를 반환하지 않습니다. (*,0)이 삽입됩니다. 이 코드를 다시 작성해야 할 수도 있습니다. // 경고가 발생한 소스 코드 줄 ^

특정 경고의 의미에 대한 자세한 내용은 다음을 참조하십시오. 진단 참조.

특정 경고의 의미에 대한 자세한 내용은 진단 참조를 참조하십시오.

간단한 테스트 프로젝트 마이그레이션

인텔® DPC++ 호환성 도구는 여러 s와 함께 제공됩니다.amp도구를 탐색하고 작동 방식에 익숙해질 수 있도록 파일 프로젝트:

Samp르 프로젝트 설명
 벡터 추가 DPCT
  • 벡터_추가.cu
벡터 추가 DPCTamp파일은 간단한 프로그램을 CUDA에서 SYCL로 마이그레이션하는 방법을 보여줍니다. Vector Add는 개발 환경이 Intel® DPC++ 호환성 도구를 사용하도록 올바르게 설정되었는지 쉽게 확인할 수 있는 방법을 제공합니다.
폴더 옵션 DPCT
  • main.cu
  • 바/util.cu
  • 바/util.h
폴더 옵션 DPCTamp파일은 보다 복잡한 프로젝트를 마이그레이션하고 옵션을 사용하는 방법을 보여줍니다.
로디니아 NW DPCT
  • 바늘.cu
  • 바늘.h
  • needle_kernel.cu
Rodinia NW DPCTsamp파일은 인텔® DPC++ 호환성 도구를 사용하여 Make/CMake 프로젝트를 CUDA에서 SYCL로 마이그레이션하는 방법을 보여줍니다.

Review 읽어보기 file 각 s와 함께 제공amps의 목적 및 사용에 대한 자세한 내용은 파일을 참조하십시오.amp르 프로젝트.

에 액세스하려면amp레

  • oneapi-cli 유틸리티를 사용하여 다음으로 선택amp인텔® DPC++ 호환성 도구 범주의 파일 또는
  • 다운로드amp레에서 GitHub*.

s를 다운로드하고 액세스하는 방법에 대한 자세한 내용은amp파일을 보려면 인텔® oneAPI 기본 툴킷 시작 안내서를 방문하십시오.

S를 시도amp르 프로젝트 

Vector Add DPCT를 마이그레이션하려면 다음 단계를 따르십시오.amp인텔® DPC++ 호환성 도구를 사용하는 파일 프로젝트:

  1. vector_add.cu 다운로드amp르.
  2. s에서 인텔® DPC++ 호환성 도구 실행amp르 루트 디렉토리:
    dpct –in-root=. src/벡터_add.cu

     

    vector_add.dp.cpp file dpct_output 디렉토리에 나타나야 합니다. 그만큼 file 이제 SYCL 소스입니다. file.

  3. 새 SYCL 소스로 이동 file:
CD dpct_output

생성된 소스 코드를 확인하고 인텔® DPC++ 호환성 도구가 마이그레이션할 수 없는 코드를 수정하십시오. (이 예제에서 사용된 코드는ample는 간단하므로 수동 변경이 필요하지 않을 수 있습니다). 인텔® DPC++ 호환성 도구에서 발생하는 경고 해결에 대한 가장 정확하고 자세한 지침은 마이그레이션된 코드의 경고 해결 섹션을 참조하십시오. 읽어주세요 files.

메모 마이그레이션된 s를 컴파일하려면amp파일에서 컴파일 명령에 -I/include를 추가합니다.

더 복잡한 samp지침은 다음을 참조하십시오. 프로젝트 마이그레이션 인텔® DPC++ 호환성 도구 개발자 가이드 및 참조 섹션.

더 찾아보기

콘텐츠 설명
인텔® DPC++ 호환성

도구 개발자 가이드 및

참조

이상 자세히view 인텔® DPC++ 호환성 도구 기능, 작업 흐름 및 사용에 대해 설명합니다.
주문형 Web이나르:

기존 CUDA 마이그레이션

코드를 DPC++ 코드로

커널과 API 호출을 모두 포팅하는 일회성 마이그레이션 엔진인 인텔® DPC++ 호환성 도구를 사용하여 CUDA 코드를 DPC++(Data Parallel C++)로 마이그레이션하는 방법.
인텔®용 설치 안내서

oneAPI 툴킷

다양한 설치 프로그램 모드와 패키지 관리자를 사용하여 Intel® oneAPI 패키지를 얻고 설치하는 방법에 대한 자세한 지침.
SYCL 사양 버전

1.2.1 PDF

SYCL 사양 PDF. SYCL이 OpenCL 장치를 최신 C++와 통합하는 방법을 설명합니다.
SYCL 2020 사양 SYCL 2020 사양 PDF.
Khronos* SYCL 오버view 오버view Khronos Group에서 제공하는 SYCL의
clang으로 CUDA 컴파일하기 clang의 CUDA 지원에 대한 설명입니다.
인텔 LLVM SYCL 확장 SYCL 사양에 대한 확장 제안.
Yocto* 프로젝트용 레이어 메타 인텔 레이어를 사용하여 Yocto 프로젝트 빌드에 하나의 API 구성 요소를 추가합니다.

인텔 로고

문서 / 리소스

인텔 DPC++ 호환성 도구 [PDF 파일] 사용자 가이드
DPC 호환성 도구, 호환성 도구, 도구

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *