FPGA 관련일을 하면 Compile 속도가 작업 효율에 엄청나게 영향을 받습니다.
15년 전만 하더라라도 CPLD 수준만 넘는다면 PC에서 Compile할 생각도 못하고 Solaris 등이 깔린 서버에서 Compile하고 내려 받아 PC Tool로 후처리 한다음 사용했는데 말이죠.
현재는 대부분 대형 ASIC 만드는 수준 아니면, FPGA 상태로 양산한다면 모두 PC로 돌리고 있죠.
얼마전까지만 하더라도 20KLE(kilo logic element)정도의 Project를 compile해도 시간단위가 걸렸죠
이제는 x86의 발전과 Tool도 multi-core를 활용하게끔 나와서 시간이 점점 짧아지고 있습니다.
아래 정보는 다음과 같은 조건과 정보하에서 Test되었습니다.
1. Tool : Intel社 Quartus Prime 18.1 Standard (구 : Altera)
2. Target Device : Max10 EQFP144 type 50KLE
3. x86환경 1 (DeskTop)
i7-8700K + 16G RAM
x86환경 2( 이하 - Laptop)
i7-9750H + 32G RAM (ASUS UX581GV)
4. Target Project
Motor Drive FOC + Universal Encoder IF(BISS, EnDAT2, Tamagawa, Panasonic-I/II/III/V, Yaskawa-I, Yaskawa-II/III,HDS-INC,HDS-ABS,STEGMANN,Quardature)
+ Ethercat SPI Controller + NIOS2 : 20703LE (logic Element)
5. Tool외 다른 App을 켜지 않은 상태.
[결과]
1. i7-8700K + 16G(21333) : 6분 42초
2. Laptop
A. HyperThread Enable : 4분 26초
B. Undervolting -0.1V : 4분 21초
C. HyperTread Disable : 4분 12초
D: HyperTread Disable + Undervoling -0.125V + Memory 상위 점유 앱 2개 Stop : 4분 00초
[고찰]
FPGA Compile만 보면 HyperThread를 사용하지 않는 편이 속도가 향상되었다.
Desktop보다는 Laptop이 Compile 속도가 줄었다. 9th로 가면서 최적화가 잘됨 + Memory 16G 많은 것이 도움
* UnderVolting은 Intel Extreme Tuning Utility(Ver 6.5.1.360)를 이용하여 수행하였다.
원리 자체는 CPU에 인가되는 전압값이 낮아짐에 따라 열에 적게 발생한다. 그리고 태생적으로 Intel CPU는 Core 전압을
최종 결정할때 약간의 마진을 두고 설정한다. 그래서 약간 전압을 낮추어서 공급할 수 있다. 그럼 열이 적게 발생하여
Thermal Throttling이 비교적 높은 Clock을 좀 더 유지하다가 걸리면서 Clock Speed가 떨어진다.
그런데 보통 0.15V 이상 UnderVolting을 하면 부하가 걸리는 작업을 하면 OS가 비정상동작을 하거나 Reset된다.
이번 실험에서는 0.125V까지만 하였고, H 모델이라 Clock Speed등이 Lock이 걸려 있어 수동으로 속도 높일 수 있는 방법은
Undervolting 밖에 없어 이방식으로 극한의 성능을 뽑아내고자 하였다.