CUDA 프로그래밍 가이드 w.r.t -use-fast-math 최적화에 대해 간략하게 살펴 보았지만 부록 C에서는 본질을 고유로 변환하는 것을 언급했지만 곱셈에 대해서는 언급하지 않았습니다. 제가이 질문을하는 이유는 제 커널이 많은 곱셈을 가지고 있기 때문입니다. 나는 NVCC가 곱셈과 덧셈 (정규 '*'와 '+'연산자가 사용되고 그 내장 함수가 결코 FMAD 연산으로 합쳐지지 않을 때)을 융합하려고 시도한다는 것을 알고있다. 그러나 내 코드가 무거운 곱셈이면 __fmul_rn
과 같은 SP 내장 함수를 반올림하면 이점이 있습니까?-use-fast-math 옵션은 SP 곱셈을 내장 함수로 변환합니까?
는 -use-빠른 수학 옵션 __fmul_rn 같은 instrinsics를 SP하기 위해 '*'연산자 곱셈을 번역 하는가 :
그래서 두 가지 질문이 있습니다?
__fmul_rn을 명시 적으로 사용하기 위해 곱셈을 손으로 코딩 할 경우 성능상의 이점이 있습니까? 예 또는 일부 숫자가 나를 이해하는 데 도움이됩니다.
설명해 주셔서 감사합니다. – Sayan
__fmul_rn()은 특정 IEEE 반올림 모드가있는 PTX 명령어에 매핑됩니다. 이 기능은 특정 최적화, 특히 단 정밀도 곱셈을 병합 한 다음 다중 가형 유형 명령어 (sm_1x의 경우 FMAD, sm_2x 및 sm_3x의 FFMA)에 단 정밀도 추가를 수행하는 것을 억제합니다. PTX 설명서를 참조하십시오. 이 속성은 특정 코드에 대해 특정 숫자 속성을 얻기를 원할 때 유용 할 수 있습니다. 예를 들어 CUDA 수학 라이브러리 내의 다양한 위치에서이 목적으로 사용됩니다. – njuffa
"일부 코드에 특정 숫자 속성을 적용하고 CUDA 수학 라이브러리 내의 다양한 위치에서이 용도로 사용됩니다"- 예제를 제공해 줄 수 있습니까? 고맙습니다. – Sayan