.NET을 사용하여 FPU 하드웨어에서 어떤 수학 방법이 구현됩니까?

StackOverflow https://stackoverflow.com/questions/1913301

  •  19-09-2019
  •  | 
  •  

문제

.NET의 프로세서의 하드웨어에 의해 어떤 수학 방법이 칭찬되는지 아는 사람이 있습니까? 예를 들어, Atan을 많이 사용하는 알고리즘이 있습니다. 이를 위해 조회 테이블을 쉽게 쓸 수 있지만 Math.net이 FPU 또는 기타 하드웨어 확장을 사용하여이를 구현하면 그만한 가치가 없습니다.

도움이 되었습니까?

해결책

하드웨어 초월 기능 지침이 느리기 때문에 X87 하드웨어 지침을 사용하여 방법이 구현되는지 여부는 문제가되지 않습니다.

"인텔 64 및 IA-32 아키텍처 최적화 참조 설명서"(다운로드 여기) 목록 fpatan 최근 하드웨어에서 150-300 사이클의 대기 시간이 있습니다. 잘 쓰여진 소프트웨어 구현은 전체 정확도 이중 정제 결과를 제공 할 수 있습니다. 실제로 고품질의 수학 라이브러리는 바로 그렇게합니다.

다른 팁

.NET과 함께 제공된 ATAN ()에 대해 룩업 테이블 접근 방식을 벤치마킹하는 것이 어떻습니까? 그러면 룩업 테이블을 사용하여 속도 차이가 실제로 얼마나 많은지 명확하게 알 수 있습니다.

그것으로 무장하면, 당신은 가장 빠른 방법을 식별하기 위해 기본 VM이 어떻게 일을하는지 알 필요가 없습니다. 속도를 정량화 할 수도 있습니다.

이 블로그에 따르면 Microsoft의 JIT 컴파일러 하다 X86 플랫폼에서 FPU 지침을 활용하십시오.

http://blogs.msdn.com/davidnotario/archive/2004/10/26/247792.aspx

FPU가 현재 10 년 넘게 X86 CPU에서 표준 이었기 때문에 꽤 기본적인 일입니다.

작은 벤치 마크 응용 프로그램을 사용하면 FPU가 사용 되더라도 Math.atan2의 성능이 대체 근사화 기능만큼 좋지 않은 것으로 보입니다.

간단한 벤치 마크에서 Math.atan2 루프는 8 초가 걸리고 대략 버전은 5.5 초가 걸립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top