OpenACC를 사용하여 GCC에서 NVIDIA GPU로로드하는 코드를 컴파일하려고하는데 위에서 언급 한 것과 유사한 컴파일러 옵션을 찾을 수 없었습니다. 오프 로딩과 관련된 모든 작업에서 GCC에보다 자세한 정보를 제공 할 수있는 방법이 있습니까?GCC는 pgcc의 -Minfo = accel와 유사한 매개 변수를 사용합니까?
1
A
답변
2
GCC는 불행히도 이러한 정보에 대한 사용자 친화적 인 인터페이스를 제공하지 않습니다 (긴 TODO 목록에 있습니다 ...).
현재 수행해야 할 작업은 관련된 여러 컴파일러 단계에 대해 -fdump-tree-[...]
에서 생성 된 덤프 파일을보고 GCC 내부를 이해해야하는 방식으로 정보를 수집하는 것입니다. 분명히 이상하지는 않습니다. -/- 및 패치 환영.은 아마도 당신이 바라던 해답이 아닙니다.
일반적으로 컴파일러의 경우 소스 코드의 잘못된 구문에 대한 진단 메시지를 생성하는 것이 일반적으로 어렵습니다 ("[...]/[/]"대신 "before/after /")). 찾고있는 것은 실패한 최적화에 대한 진단 메시지이며 이와 유사합니다. 사용자에게 실제로 유용한 형태로 생성하는 것이 훨씬 어렵습니다. 그리고 지금까지는 (즉, GCC 개발자) 필요한만큼의 비용을 지출하지 못했습니다. 이것에 시간.
그건 내가 생각한거야. 결국 OpenACC 전체가 여전히 GCC에서 개발 중입니다. "y 라인에서 파일 x의 acc 영역을 발견하고 오프로드 대상 nvptx 용 커널 코드를 생성했습니다"와 같은 디버그 출력을 생성하는 컴파일러 플래그는 시작하는 데 정말로 도움이됩니다. 필자는 컴파일러 나 C에 대해 많이 알지 못하기 때문에 유용한 패치를 만들 수있는 입장이 아닙니다. –