2013-03-02 8 views
4

부동 소수점 보조 프로세서가 부동 소수점 산술의 소프트웨어 구현보다 빠르게 작동한다는 것을 알았지 만 (이 말에 의하면)이 차이가 얼마나 큰지 느끼지 못했습니다. 크기의 순서.FPU와 소프트웨어 에뮬레이션의 성능 비교

답변은 아마도 마이크로 프로세서와 슈퍼 컴퓨터 사이의 응용 프로그램과 작업 환경에 따라 달라집니다. 나는 특히 컴퓨터 시뮬레이션에 관심이있다.

이 질문에 대한 기사 나 논문을 지적 할 수 있습니까?

+0

일반적으로 동작에 따라 1 ~ 3 배 정도입니다. –

+0

부동 소수점 에뮬레이션의 성능은 대상 프로세서의 정수 성능과 성능에 따라 크게 달라질 수 있습니다. 최근의 예제는 VLIW CPU를 대상으로하는 FLIP 라이브러리 http://flip.gforge.inria.fr/입니다. 실적 데이터 및 관련 논문 링크는 위 URL에서 링크됩니다. – njuffa

+1

Cristina Iordache와 Ping Tak Peter Tang, Intel XScale 아키텍처의 부동 소수점 지원 및 수학 라이브러리 개요, 컴퓨터 산술에 관한 IEEE 심포지움, 122-128 페이지, 흥미있는 약간 오래된 논문. 시간을 낼 수있는 샘플 에뮬레이션 코드의 경우이 질문에 대한 답으로 게시 한 단 정밀도 역 코드를 확인하십시오. http://stackoverflow.com/questions/9011161/how-to-implement-floating-point-division -in-binary-with-no-division-hardware 및/9049376 # 9049376 – njuffa

답변

4

일반적으로 대답은 분명히 매우 모호합니다. 왜냐하면 성능은 여러 가지 요소에 달려 있기 때문입니다.

그러나 하드웨어에서 부동 소수점 (FP) 연산을 구현하지 않는 프로세서에서 소프트웨어 구현은 일반적으로 보다 10 배에서 100 배 느리다. (또는 구현이 나쁜 경우 더 나쁘다) 정수 연산은 항상 CPU의 하드웨어에 구현됩니다.

정확한 성능은 정수 하드웨어의 기능과 같은 여러 요인에 따라 달라집니다. 일부 CPU에는 FPU가 없지만 정수 계산에는 FP 계산의 빠른 소프트웨어 에뮬레이션을 구현하는 기능이 있습니다.

njuffa가 언급 한 논문 인 Cristina Iordache and Ping Tak Peter Tang, An Overview of Floating-Point Support and Math Library on the Intel XScale Architecture이이를 지원합니다. 인텔 XScale 프로세서 대기 시간 (발췌)로 목록 :

integer addition or subtraction: 1 cycle 
integer multiplication:   2-6 cycles 
fp addition (emulated):   34 cycles 
fp multiplication (emulated):  35 cycles 

그래서이 약 10 ~ 30 정수 및 FP 연산 사이의 요인이 될 것입니다. 이 신문은 또한 GNU 구현 (GNU 컴파일러가 기본적으로 사용하는 것)이 약 10 배 느리고 전체 요소가 100-300임을 언급합니다.

마지막으로 FP 에뮬레이션이 컴파일러에 의해 프로그램으로 컴파일 된 인 경우입니다. 일부 운영 체제 (예 : Linux 및 WindowsCE)에는 OS 커널에 FP 에뮬레이션 이 있습니다. 이점은 FP 에뮬레이션없이 컴파일 된 코드 (예 : FPU 명령어 사용)가 FPU없이 프로세스에서 실행될 수 있다는 것입니다. 커널은 소프트웨어에서 지원되지 않는 FPU 명령어를 투명하게 에뮬레이션합니다. 그러나이 에뮬레이션은 추가적인 오버 헤드 때문에 프로그램에 컴파일 된 소프트웨어 에뮬레이션보다 훨씬 느립니다 (약 10 배 정도). 분명히이 경우는 일부 프로세서가 FPU를 사용하고 일부는 FPU를 사용하지 않는 프로세서 아키텍처에서만 관련이 있습니다 (예 : x86 및 ARM).

참고 :이 답변은 (에뮬레이트 된) FP 연산의 성능을 동일한 프로세서의 정수 연산과 비교합니다. 귀하의 질문은 하드웨어 FP 조작과 비교하여 (에뮬레이트 된) FP 조작의 성능 에 관한 것으로 읽을 수도 있습니다 (사용자가 의도 한 것이 확실하지 않음). 그러나 FP가 하드웨어로 구현되면 일반적으로 정수 연산만큼 빠르기 때문에 그 결과는 거의 같습니다.