퀄컴은 Centriq 2400 프로세서로 서버 시장에 도전장을 냈습니다. 그럼 현재 주류 서버 시장을 차지하는 인텔 제품과 비교해서, 과연 어느 정도의 성능을 낼까요?
테스트용으로는 인텔 스카이레이크와 브로드웰을 골랐습니다. 그리고 아래에선 퀄컴 Centriq를 코어 코드네임인 팔코어로 표기합니다. 아래 테스트 그래프는 모두 싱글/멀티 코어의 2가지가 있습니다.
그리고 여기에선 엔지니어링 샘플로 테스트했습니다. 클럭 차이 때문에 성능이 8% 정도 더 오를 가능성이 있습니다. 결론을 한줄요약하면 일부 항목에선 괜찮은 성능을 보여주나, 아직 최적화가 필요하다 정도.
오픈SSL 퍼블릭 키 성능은 CPU의 ALU에 의해 결정됩니다.
그래서 싱글코어 테스트에서 브로드웰-X가 스카이레이크보다도 더 높습니다. 클럭이 높거든요. 팔코어는 싱글코어 성능이 떨어지는데, 그건 인텔이 2개의 특수한 덧셈/곱셈 명령어가 있어서입니다. ADCX와 ADOX죠. 이들 명령어는 각각의 사이클에서 2번의 독립된 연산을 수행합니다. ARM은 1번 뿐이죠. ARMv8에서 쓸 수 있는 건 오직 MUL과 UMULH 뿐입니다.
멀티코어 테스트에선 RSA2048 sign이 ARM 최적화가 되지 않아 팔코어가 스카이레이크보다 떨어집니다. 하지만 ECDSA에서는 매우 높은 점수를 보여줍니다. 그러니까 ECDSA 계산법을 사용한다면 팔코어도 괜찮을 겁니다.
오픈SSL 시메트릭 키입니다.
인텔은 암호화 테스트에서 괜찮은 성과를 보여줍니다. AES-GCM은 특수한 명령어 조합을 사용해 AES와 CLMUL을 가속합니다. 인텔은 2010년에 이 명령어를 추가해, 웨스트메어부터 계속 개선해 왔습니다. ARM은 최근 이와 비슷한 명령어 셋트를 64비트 확장 명령어 셋트에서 선택할 수 있게 했으니, 이후에 나올 퀄컴 제품에서는 암호화 성능이 나아질 수 있습니다.
ChaCha20-Poly1305는 SIMD 유닛을 더욱 잘 활용하는 통용 연산입니다. 퀄컴 Centriq는 오직 128비트 NEON SIMD밖에 없고, 브로드웰은 256비트 AVX2 명령어 셋트, 스카이레이크는 512비트 AVX-512가 있습니다. 그래서 스카이레이크의 싱글코어 성능이 대폭 앞습니다. 멀티코어에선 스카이레이크 AVX-512 연산 시 클럭이 떨어지게 됩니다. 코어 내부에서 AVX-512 조작에선 베이스 클럭이 1.4GHz로 줄어들기에 성능도 따라 줄어듭니다.
GZip 압축 테스트입니다. 서버에서 압축은 매우 중요합니다. 클라이언트와 대역폭의 부담을 줄여줄 수 있으니까요. 압축은 작업량을 대폭 늘리기에 분기 예측이 빗나갈 확률이 높습니다.
스카이레이크는 브로드웰보다 클럭이 낮긴 하지만 분기예측 적중률이 더 높았습니다. 팔코어는 방대한 코어 수 덕분에 큰 폭으로 앞섰습니다.
Brotil 압축 성능입니다. 스카이레이크는 싱글코어에서 가장 빠르고 팔코어는 가장 느립니다. 멀티코어에서는 결과가 뒤섞입니다. 팔코어가 대체적으로 빠르긴 하나 그렇지 않은 경우도 있습니다. 여기에선 메모리를 대량으로 소모했기 때문이라 보고 있습니다.
클라우드플레어의 중요한 언어인 Golang은 ARMv8에서도 지원합니다. 하지만 최적화는 이야기가 다르죠. 여기에선 ARM과 인텔이 비교가 안될 정도로 차이가 극심하네요. Golang은 ECDSA, AES-GCM, CHacha20-poly1305, 인텔의 RSA 연산 함수까지 사용합니다. ARMv8에는 모두 없는 것들입니다.
Go Gzip에서는 상황이 좀 나아졌습니다. 다만 여전히 최적화가 부족합니다.
Go Regexp도 스카이레이크가 최고입니다.
Go String. 여기에서 팔코어는 브로드웰보다도 떨어집니다. runtime.memmove 함수가 대량의 시간을 잡아먹기 때문이죠. 이 함수는 AVX2를 씁니다.
aarch64 모드에서 팔코어의 성능은 실망스럽습니다. 개선이 필요해 보입니다.
LuaJIT입니다. binary_trees만 빼면 ARM은 여기에서 상당한 경쟁력을 갖췄습니다. 최소 2개 항목에서 유리합니다. 하지만 이것도 중요한 항목이죠.
Nginx 성능 대 전력입니다. 팔코어가 그렇게 나쁘진 않네요.
그나저나 BR은 (일부항목에서)젠한테도 털리고 퀄컴한테도 털리고...