2012-01-18 1 views
3

장미 컴파일러에서 cuda에 대한 지원 범위에 대해 알고 싶습니다. 나는 쿠다 (cuda)를위한 소스 번역기를 만들기 위해 노력하고있다. Rose 컴파일러를 사용할 수 있습니까? 어떤 Rose 컴파일러를 사용해야합니까?로즈 컴파일러를 사용하여 Cuda 소스에서 소스로 번역

이전에 (장미 컴파일러에서 cuda에 대한 지원) 논의되었지만 cuda 지원이 있는지 여부를 이해할 수 없습니다. 로즈 사용자 설명서에는 많은 정보가 없습니다.

답변

1

Rose에는 합리적으로 잘 통합 된 C++ 프런트 엔드와 포트란 프런트 엔드가 있습니다. Rose 시스템 디자인 IMHO는 충분한 노력으로 할 수 있지만 다른 프런트 엔드 파서 (예 : Cuda를 구문 분석해야 할 필요가 있음)를 쉽게 통합 할 수는 없습니다. (Rose는 원래 C++ 만 가지고 있고 Fortran은 접 붙여졌다.) Rose 매뉴얼에 Cuda에 대해 명시 적으로 언급하지 않은 경우, 간단히 말해서 Cuda가 없기 때문입니다.

원본에서 소스로 변환을 사용하여 Cuda를 처리하려면 Cuda 파서와 Rose가 가진 것과 같은 적절한 변환 장치 집합이 모두 필요합니다.

당신에게 Cuda 파서를 제공 할 수는 없지만 저희 회사는 DMS Software Reengineering Toolkit 형태의 산업 강도 소스 - 소스 프로그램 변환 시스템을 제공합니다.

DMS는 대용량 C++ 시스템에서 대규모 변환을 수행하는 데 사용되어 왔기 때문에 적어도 그 목적으로 Rose만큼이나 유능하다는 말은 상당히 합리적이라고 생각합니다. DMS는 또한 매우 큰 C 및 Fortran 시스템과 Java, C#, ECMAScript, PHP 및 기타 많은 언어로 된 다른 코드를 처리하는 데 사용되어 왔기 때문에 다른 프런트 엔드를 DMS에 통합하는 것이 상당히 쉽다고 말하는 것이 안전하다고 생각합니다 .

쿠다 (Cuda)는 C99 파생물입니다. DMS에는 C 프론트 엔드가 있으며 다양한 C 언어를 빌드 할 수 있습니다. C99의 대부분은 이미 방언 (dialect) 메커니즘을 사용하여 구축되었습니다. 꽤 좋은 출발점이 될 수 있습니다.

대안으로 ANTLR과 같은 다른 도구를 사용해 볼 수도 있지만 ANTLR과 Rose와 DMS가 복잡한 시스템을 구문 분석, 분석 및 변환하는 능력면에서 매우 다른 리그에 있음을 곧 알게 될 것으로 생각됩니다. 실제 코드.

관련 문제