Cuda는 intrinsic functions을 지원합니다. 일부는 일반적인 구문으로 표현할 수없는 퓨즈 된 다중 덧셈과 같은 장치 명령어에 매핑됩니다. 기타는 "표준"기능보다 빠르지 만 (잠재적으로 덜 정확하지만) 근사치입니다.__saturatef() intrinsic에는 동일한 배정 밀도가 없습니다.
내재 형식의 후자 유형은 배정 밀도 인수 및 단 정밀도 부동 소수점에 대해서만 지원되는 것으로 보입니다. 의미가 있습니다 : 복식을 사용하는 경우, 정의에 따라 속도에 대한 정확도에 관심이 있습니다.
그러나 놀랍게도 0에서 1 사이의 인수를 클램핑하는 내장형 __saturatef()
에는 배정도 버전이 없습니다.
순진한 구현보다 내재적 인 __saturatef()
을 사용하면 데이터가 손실 될 가능성이 있습니까? 그렇다면이 내장 함수가 어떻게 작동하는지 누구도 알고 있습니까? 그렇지 않다면 왜 nvidia가 배정도 버전을 생략할까요?
"잠재적 인 데이터 손실"은 무엇을 의미합니까? 예를 들어 줄 수 있습니까? CUDA의 디바이스 내장 함수의 주요 목적은 액세스 할 수없는 하드웨어 기능을 폭로하는 것입니다. 하드웨어는 관련 사용 사례로 인해 단 정밀도 산술 연산을 위해 채도를 제공하지만 배정 밀도 산술을 위해 채도를 제공하지 않습니다. 문제는 경계 밖의 주제입니다. 질문에 대해 다시 말하면 프로그래밍에 관한 내용을 명확하게 제시 할 것을 제안합니다. 예를 들면 다음과 같습니다 : double precision intrinsic'__saturate (double) '이 없다는 것을 감안할 때,이 연산을 에뮬레이션하는 가장 빠른 방법은 무엇입니까? – njuffa