openacc.org의 OpenAAcc 프로그래밍 가이드를 연구 중입니다. 많은 중첩 된 계산 영역이이 책에서 널리 사용됩니다. 그러나 제 컴파일러 (x86-64 Linux -p sandybridge year 2017의 버전 17.4-0 64 비트 대상)는 내 버전의 컴파일러가 중첩 된 계산 구조를 지원하지 않는다고 기록합니다. 이 버전의 컴파일러는 실제로 중첩 된 계산 구조를 지원하지 않습니까? 그렇다면 중첩 된 계산 구조 지원이 필요한 경우 사용할 컴파일러는 무엇입니까? 최신 버전의 gcc가이 옵션을 지원합니까?중첩 된 계산 구성을 지원하는 openacc 컴파일러
0
A
답변
0
PGI는 아직 중첩 된 병렬 처리 (즉, 다른 계산 영역 내의 계산 영역)를 지원하지 않습니다. 나는 GNU가 그것을 지원한다고 생각하지 않는다.
언급 한 OpenACC 프로그래밍 가이드의 특정 섹션을 가리킬 수 있습니까? 중첩 된 병렬 처리 예제를 기억하지 못하고 두 컴파일러에서 모두 지원되는 계산 영역 내에 "루프"지시문을 추가했는지 궁금합니다.
OpenAcc 프로그래밍 가이드 (https://www.openacc.org/sites/default/files/inline-files/OpenACC_Programming_Guide_0.pdf). 예를 들어 41, 42, 43-44, 45 페이지에는 중첩 된 병렬 처리의 예제가 들어 있습니다. 제발, 저를 확인하십시오,하지만 나에게 맞는 것 같습니다. – And
아니요, 이는 계산 영역 내에서 "loop"지시어를 사용하는 예입니다. 중첩 된 병렬 처리는 다른 계산 영역 내에 "병렬"또는 "커널"이라는 계산 영역이있는 경우입니다. –
여기에있는 다른 게시물과 PGI User Forum에서이 의견과 함께 "병렬"또는 "커널"과 "루프"지침의 차이점을 혼동하는 것 같습니다. 계산 영역은 장치에 오프로드 할 코드를 정의하고 "루프"지시문은 병렬 처리 할 루프와 "gang", "worker"또는 "vector"의 병렬 처리 수준을 정의합니다. 계산 영역 내에서 "루프"지시문 내에서 코드는 각 갱 (gang)별로 중복 실행됩니다. –