2012-10-16 3 views
8

BLAS Level 1 API의 대부분은 Fortran 9x + 벡터화 된 지정 및 내장 프로 시저를 사용하여 쉽게 작성할 수 있습니다.BLAS 레벨 1 절차는 현대 Fortran 컴파일러와 여전히 관련이 있습니까?

Intel Fortran과 같은 최신 최적화 컴파일러와 올바른 대상 별 컴파일러 최적화 옵션을 사용한다고 가정하면 Intel MKL 또는 다른 빠른 BLAS 구현에서 BLAS 레벨 1 절차를 사용하면 성능상의 이점이 있습니까?

이러한 이점이 나타날 때 일반적인 벡터 크기는 무엇입니까?

답변

9

다릅니다. 이전에 인텔 컴파일러로 테스트 해본 결과 놀라운 결과를 얻었습니다. 예를 들어 Fortran과 BLAS 구현 간의 DOT_PRODUCT은 문제의 크기에 따라 다른 경향을 나타냅니다. 어레이의 요소 수가 많아지면 BLAS가 내장보다 낫습니다. 그러나 작은 문제 크기의 경우 내장 함수가 훨씬 빠릅니다.

우리는 실제로 우리의 유스 케이스에 대해 다른 것보다 더 잘 만들고 실제로 if 문을 사용하여 호출 할 것을 결정하는 데 필요한 컷오프 크기를 측정했습니다. 그 결과를 공유 할 수는 없지만 직접 테스트 해 보시기 바랍니다. BLAS를 사용하면 여전히 이점이 있습니다.