2010-11-26 6 views
1

우리는 FPGA와 Normal Quad x86 컴퓨터에서 얼마나 빠른 알고리즘이 실행되고 있는지 확인하고 있습니다.FPGA 측정 정확한 시간

이제 x86에서 우리는 많은 시간 동안 알고리즘을 실행하고 OS 오버 헤드를 제거하기 위해 평균값을 취합니다. 또한 오류에서 곡선을 "제거"합니다. 그게 문제가 아닙니다.

는 FPGA 알고리즘의 측정 사이클에 있고 FSMD 어쨌든주기를 계산하는 사소한와 다음 시간에 사이클을

...

우리는 그 카운트 사이클이 너무 "순수"측정 생각하고 이것은 이론적으로 수행 될 수 있으며, 실제 FPGA에서 알고리즘을 실행하거나 실제 측정을 수행 할 필요가 없습니다.

실시간 측정을하기 위해 종이 또는 아이디어가 있다는 것을 알고 싶습니다.

답변

4

FPGA 구현이 경쟁 우위를 차지하고 있으며 따라서 실제 환경에서 유용 할 수 있다는 것을 입증하려는 경우 다중 프로세서와 FPGA 구현에 대한 ** 벽시계 **를 비교하는 것이 좋습니다 . 이는 또한 FSM + 데이터 경로 (예 : I/O 지연) 이상의 성능 효과를 간과하지 않도록 도와줍니다.

보고주기가 인 경우에만 만 표시된다는 것은 동의하지 않습니다. 왜냐하면 FPGA주기 시간은 선반 형 마이크로 프로세서의 10 배가 될 수 있기 때문입니다.

추가 자발적인 조언이 있습니다. 나는 수많은 FCCM 회의에 참석해 왔으며 이와 비슷하게 많은 수십 개의 FPGA 구현과 CPU 구현 성능 비교 논문을 들었다. 너무 자주, 종이가 벤치 마크 소스 코드를 선반에서 꺼내 컴파일하고 오후 한 달에 실행 한 CPU + 소프트웨어 구현과 비교하여 몇 달이 걸린 사용자 정의 FPGA 구현을 비교합니다. 그러한 프레젠테이션이 특히 매력적이지는 않습니다.

공정한 비교는 벡터 SIMD (예 : SSE, AVX, ...)를 사용하는 여러 가지 코어에서 멀티 스레딩을 사용한 모범 사례, 최상의 사용 가능한 라이브러리 (예 : 인텔 MKL 또는 IPP)를 사용하는 소프트웨어 구현을 평가할 것입니다 프로파일 러와 같은 도구를 사용하여 쉽게 고정 된 낭비를 없애고 Vtune과 같이 캐시 + 메모리 계층을 이해하고 조정할 수있었습니다. 또한 FPGA 구현에 소요되는 실제 엔지니어링 시간과 소프트웨어 구현 시간을보고하십시오.

무료 조언 : 결과/주울이 초당 결과를 앞서는 에너지 집중 형 시간대에서 구현의 에너지 효율을보고하는 것도 고려하십시오.

무료 조언 : "쿼드 x86"에서 가장 반복 가능한 시간을 얻으려면 시스템을 정지시키고 백그라운드 프로세서, 데몬, 서비스 등을 종료하고 네트워크 연결을 끊어야합니다.

해피 해킹!