본문 바로가기

Lecture & Column/vga_lec_col

SLI와 크로스파이어의 비밀 : 판도라의 상자를 열다

Author : Daeguen Lee

(Any action violating either copyright laws or CCL policy of the original source is strictly prohibited)




고성능으로 게임을 즐기고 싶으면 어떻게 해야 할까요? 당연히 더 좋은 그래픽카드를 사야 합니다. 하지만 돈이 흘러넘쳐 주체할 수 없을 지경이라도 현존하는 그래픽카드 중 여러분의 기대를 충족시키는 것이 없을 수 있습니다. 그런 사람이 있는 반면 최상급 그래픽카드를 사기에는 아무래도 돈이 부족해 어찌할 줄을 모르는 사람도 있을 것입니다.


얼핏 보아도 이 둘은 처한 상황이 전혀 다르고, 따라서 전혀 다른 해결책을 가져다 주어야만 할 것 같아 보입니다. 하지만 공교롭게도 오늘날 이들에게 제시할 수 있는 옵션은 아주 비슷하게 수렴합니다. '예산이 허락하는 범위 내에서 다중 그래픽카드 구성으로 눈길을 돌려보라' 는 것이죠. 최상위 그래픽카드에 만족할 수 없는 사람은 최상위 그래픽카드를 두서너 개 꽂아 보라는 것이고, 최상위 그래픽카드를 살 수 없는 사람은 가격-성능 곡선이 최적점을 이루는 적당한 그래픽카드를 두서너 개 꽂아보면 의외로 마음에 드는 구성을 찾을 확률이 높습니다. 마침 진작부터 엔비디아, AMD 양사는 -그러라고- 다중 그래픽카드 기술을 개발해 두었습니다.


양사의 다중 그래픽카드 기술은 각각 (엔비디아) SLI, (AMD) 크로스파이어X 라는 이름으로 불립니다. 이름이야 어떻든 구현방식은 러프하게는 비슷합니다 : 매 프레임마다 주 그래픽카드에 들어온 연산량을 그래픽카드 갯수만큼 분할하여 부 그래픽카드에 할당해 프레임을 그려내는 총 소요시간을 줄이는 것이죠. 하지만 미시적으로 들어가면 이러한 비슷한 방법론을 구현하는 모양은 꽤나 달라집니다. 그리고 그 차이로 인해 SLI나 크로스파이어 효율은 거시적으로는 비슷 (듀얼 구성 기준, 반올림하면 대충 2배는 됩니다) 하지만 미시적으로는 전혀 다른 양상을 보이게 됩니다. 그리고 여러 경험칙에 의거해 크로스파이어가 SLI보다 효율이 조금 더 좋다고 널리 알려져 있었습니다.


과연 이 부분을 좀더 정밀하게 검증할 수 있을지, 그리고 가능하다면 이 부분에 관해 수학적인 수식을 얻어낼 수는 없을지, 이 궁금증이 이 글의 시작입니다.



아시다시피 저는 5년 전 IYD를 만든 이래로 거의 매년, 연례행사급으로 당대 최상위 지포스, 라데온을 동원해 멀티 GPU 성능비교를 진행해 왔습니다. 위의 그림은 가장 최근 수행한 라데온 R9 Fury X 크로스파이어와 지포스 GTX TITAN X SLI의 비교 벤치마크 (링크) 중에서 발췌한 것인데, 여기에서도 오른쪽 빨간 네모로 표시한 데이터를 사용해 간단한 분석을 보여드리도록 하겠습니다.


우선 엔비디아 SLI부터 분석해 봅시다. 위 그림에서 빨간 네모로 표시한 것 중 GTX TITAN X의 SLI 효율을 발췌해 분석한 것입니다.



이론적으로, 듀얼/트리플/쿼드 SLI 구성시의 성능은 단일 성능의 200%/300%/400%가 되는 것이 이상적입니다. 성능이 두/서/너 배가 된다는 것은 프레임타임은 그 역수로 줄어들었다는 의미이죠. 그러나 위의 실측 데이터를 보면 프레임타임 값은 1/2, 1/3, 1/4로 딱딱 맞춰 줄어들지는 않았습니다. 저는 그 차이에 주목했습니다.


듀얼 TITAN X의 SLI 효율은 약 179%로, 이를 프레임타임으로 환산하면 (단일일 때가 1이라면) 0.5587이라는 값을 얻습니다. 이상적인 경우 (=200%) 의 프레임타임이 0.5이므로 0.0587이라는 오차가 발생한 것입니다. 같은 방법으로 트리플, 쿼드 SLI에서의 '오차'를 떼어놓고 보면 일정한 규칙이 있습니다. 묘하게 선형적인 증가를 보인다는 점이죠. (아래로 내려가면 보기 쉽게 그래프화한 자료가 있습니다만 글로 설명하더라도 그리 어렵지 않은 내용입니다.)


이 오차를 SLI의 오버헤드라 간주한다면 그래픽카드 갯수에 비례해 늘어나는 값이라 가정하는 편이 상식적입니다. 따라서 0.0586을 2a, 0.0868을 3a, 0.1033을 4a라 두고 a의 평균을 구하면 대략 0.0275 정도가 됩니다.



똑같은 분석을 R9 Fury X에 대해 수행해 봅시다. 중간과정은 생략하고 결과만 보면 여기서는 a 값이 0.0172가 되었습니다. 앞서 GTX TITAN X로부터 얻은 a 값은 0.0275였는데, 그보다 약 40% (정확히는 37.5%) 줄어든 값입니다. 다시 말해 크로스파이어의 오버헤드는 SLI의 62.5% 수준에 불과합니다. 신기하지 않으신지요.


자. 여러분은 지금 '크로스파이어가 SLI보다 효율이 좋다' 는 명제가 수치적으로 증명되는 역사적인 (첫?) 현장에 계신 겁니다. 좀더 보기 쉽게 그래프를 그려 보도록 하죠.



위 그림은 SLI와 크로스파이어의 그래픽카드 갯수별 오버헤드를 그래프로 나타낸 것입니다. 크파가 오버헤드가 작다는 것을 논외로 하더라도 이미 저것들 자체로 대단히 선형적인 plot을 보여주고 있습니다.



SLI만 따로 떼어, 실측된 오버헤드와 제가 계산해 낸 a = 0.0275를 대입해 모델링한 오버헤드를 비교한 것입니다. 거의 유사한 진행을 보입니다.



다시, 크로스파이어만 따로 떼어 실측된 오버헤드와 a = 0.0172 모델을 비교한 것입니다. 추세선이 거의 차이가 없을 만큼 겹쳐진 것을 확인할 수 있습니다.


무엇보다 재미있는 점이라면 바로 이 오버헤드 계산이 시사하는 상식의 파괴에 있습니다. 0.0275과 0.0172라는 값은 각각 GTX TITAN X의 성능을 1로 환산한 프레임타임에서 그것의 2.75%, 1.72%에 불과한 아주 작은 수치들일 뿐입니다. 일상적인 환경에서 100%의 성능에 2.75%쯤 빠지더라도, 97.25%는 충분히 강력해 보이고 별 차이가 없는 것처럼 느껴집니다. 하지만 이것이 프레임타임에 직접 작용해 역수를 구할 때 적용되면서 아주 큰 차이를 만들어냅니다. 더군다나 멀티 GPU 환경에서는 그래픽카드의 성능이 단일 GPU의 배수로 상승하면서 프레임타임은 1/n로 감소하고, 따라서 '사소한' 2.75%의 차이는 갈수록 크게 확대될 수밖에 없는 구조입니다.


실제 Fury X 크로스파이어 vs TTIAN X SLI 벤치마크 (링크) 에서도 그러했듯 Fury X 듀얼은 TITAN X 듀얼보다 성능이 좋았고, 이는 싱글 성능에서의 열세를 극복하며 이뤄진 것이라는 점에 주목할 필요가 있습니다. 싱글 기준 두 그래픽카드의 4K 게임성능은 TITAN X를 100%로 두면 Fury X가 98% 정도로 다소 떨어지는 편이지만, 이 '사소한' 2.75%와 1.72%의 오버헤드들이 복잡하게 작용하며 결국 Fury X 듀얼은 183%p를 기록, 179%p에 그친 TITAN X 듀얼을 꺾을 수 있었습니다. 이제 이 오버헤드의 차이가 왜 발생하는지를 파헤쳐 보는 것이 저의 다음 과제가 될 것입니다.


지금까지 프레임타임 계산을 통해 멀티 GPU 오버헤드를 선형 방정식으로 표현해 보았습니다. 비록 이 글에서는 크로스파이어의 오버헤드가 SLI의 그것보다 40%가량 작다는 점을 확인하는 것으로 끝을 맺지만, 향후 멀티 GPU 성능을 가늠해 보아야 할 일이 있을 때 더욱 정확한 예측을 가능하게 하는 데 도움을 줄 것입니다. 지난 5년간 아주 잘 우려먹어 온 VGA 성능 방정식과 함께 이 방정식으로도 더욱 재미있는 파생 컨텐츠를 만들어낼 수 있도록 하겠습니다. 아마 그 첫 타자는 다가올 듀얼 Fiji, 듀얼 GM200 그래픽카드들의 성능 예측이 될 가능성이 높겠지요 :)


머리아픈 글 읽어 주셔서 감사합니다!


//