SLI와 크로스파이어의 비밀 : 판도라의 상자를 열다 - IYD - Everything Inside Your Device
SLI와 크로스파이어의 비밀 : 판도라의 상자를 열다
2015. 9. 28. 18:34
고성능으로 게임을 즐기고 싶으면 어떻게 해야 할까요? 당연히 더 좋은 그래픽카드를 사야 합니다. 하지만 돈이 흘러넘쳐 주체할 수 없을 지경이라도 현존하는 그래픽카드 중 여러분의 기대를 충족시키는 것이 없을 수 있습니다. 그런 사람이 있는 반면 최상급 그래픽카드를 사기에는 아무래도 돈이 부족해 어찌할 줄을 모르는 사람도 있을 것입니다.
얼핏 보아도 이 둘은 처한 상황이 전혀 다르고, 따라서 전혀 다른 해결책을 가져다 주어야만 할 것 같아 보입니다. 하지만 공교롭게도 오늘날 이들에게 제시할 수 있는 옵션은 아주 비슷하게 수렴합니다. '예산이 허락하는 범위 내에서 다중 그래픽카드 구성으로 눈길을 돌려보라' 는 것이죠. 최상위 그래픽카드에 만족할 수 없는 사람은 최상위 그래픽카드를 두서너 개 꽂아 보라는 것이고, 최상위 그래픽카드를 살 수 없는 사람은 가격-성능 곡선이 최적점을 이루는 적당한 그래픽카드를 두서너 개 꽂아보면 의외로 마음에 드는 구성을 찾을 확률이 높습니다. 마침 진작부터 엔비디아, 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 그래픽카드들의 성능 예측이 될 가능성이 높겠지요 :)
머리아픈 글 읽어 주셔서 감사합니다!
AMD, Column, lecture, nvidia, VGA
Sli와 Cf의 오버헤드가 '왜' 차이나는지 더 궁금해지네요.
신고">2015.09.28 19:19 신고
저도 좀더 구체적으로 파고들어 봐야겠습니다. 원리를 알아야 VGA 방정식에 통합시키든지 하지...@$#%#!$#%$
2015.09.28 21:04
슬리 크파는 단순히 글카 가격의 합이 아니고 파워/보드 값이 들기에 부담이죠.
더불어 VRAM 공유가 되지 않는 문제가 있어서 저도 970 sli가 아닌 단일 980ti를 택했네요
어쨌든 듀얼 gpu는 크파가 범용성 높고 성능에서 유리하다는 건 상식이었는데 이론적 증명이 되네요.
신고">2015.09.28 21:44 신고
장구라 주소 수정/삭제 댓글
머...머라는지 모르겠다 그냥 가만 있어야 겠다 >_<
신고">2015.09.29 00:30 신고
Circuit.Board 주소 수정/삭제 댓글
신고">2015.09.29 00:28 신고
SLI 노트북을 사용하는 사람으로서 매우 감명깊은 글이었습니다.
다만 위 글은 플래그십 제품의 SLI에 해당하는 글로써, 퍼포먼스급 제품의 SLI에도 저 60%라는 비율이 일괄적으로 해당하는지에 대해서는 좀 더 추가적인 설명이나 검증이 필요하지 않은가 싶습니다.
이 부분에 대해서도 추가적인 코멘트를 해 주시면 좋을 것 같습니다.
신고">2015.09.29 00:35 신고
감사합니다. 궁금해하신 부분과 관련해서는 2013년의 크파 vs SLI 벤치마크가 있어 마침 참조할 수 있었는데,
iyd.kr/585
당시에는 780 Ti와 290X를 가지고 테스트했는데 그 결과 780 Ti에 대해 0.0397, 290X에 대해 0.0259라는 값을 얻었습니다. 일단 여기에서도 290X가 780 Ti 대비 65% 정도에 해당하는 a 값을 얻은 셈이고, 나아가 이 둘의 TITAN X 대비 성능이 60~70% 정도임을 생각하고 a를 normalize 해 주면 금번 새로 구한 a값과 대충 비슷한 관계가 나옵니다. (0.67을 곱해주면 780 Ti의 a값은 0.0266으로, 290X의 a값은 0.0172로 나와 거의 같아집니다.)
즉 이 결과는 '웬만해서는' 드라이버에 의한 영향까지 초월해 이어지는 것 같습니다. 물론 당시의 780 Ti와 290X를 퍼포먼스급으로 볼 수는 없지만 지금은 이미 최상위 단일 GPU의 60~70%정도 성능으로 내려온 상태이니 아래로의 extrapolate도 가능하지 않을까 짐작하고 있습니다.
신고">2015.09.29 02:23 신고
그럼 결국 SLI 효율은 GPU 제조사의 병렬처리 알고리즘에 따라 결정된다... 라는 말씀이신가요? 사실 제가 알고 싶었던 것은 저 SLI 효율에 병렬처리방법이 어느 정도로 영향을 끼치는 것인지에 대한 결론뿐 아니라 메모리 대역폭 등 병목현상의 원인이 될 만한 요소들이 SLI 효율에 얼마나 영향을 끼치는가에 대한 점도 있었거든요. 하지만 예시로 들어주신 780Ti나 290x는 그 부분을 설명해 주지는 못하는 것 같아요.
신고">2015.09.29 02:59 신고
a값을 계산함에 있어 '그래픽카드 성능'으로 설명되는 모든 부분을 제외한 나머지를 a로 가정했고 그 값이 상수로 분리된 만큼, 적어도 여기서 논하는 a만큼은 그래픽 성능에 영향을 주는 어떤 요소와도 관계가 없습니다. 다시 말해 스트림프로세서 수나 rop 갯수, 메모리 대역폭 등과 현재까지는 별 관계를 찾을 수 없었습니다.
적어도 4종의 GPU (TITAN X, 780 Ti, Fury X, 290X) 에서 일관된 결과가 나왔다는 것은 우연히 이 모든 GPU의 성능을 구성하는 요소들이 같은 비율로 구성되어 있거나, a가 이들 요소와 관련이 없거나 둘 중 하나인데 전자가 이미 아니기 때문입니다.
쉽고 간략하게 써 주셔서 이해가 잘 됐습니다.
SLI나 크로스파이어가 PCI Express 레인 배수들에 따라서 성능이 바뀌는 지도 알고 싶네요.
(3.0 x16 & 3.0 x8 / 3.0 x16 & 3.0 x4 같은 조합으로요.)
어차피 2개를 장착할 경우 낮은 배수로 동작한다고 알고 있는데..
신고">2015.10.04 03:51 신고
바뀌... 겠죠?! 그 부분도 계속 탐구해 보겠습니다
2015.10.05 16:07
예전에 다른 곳에서 벤치한걸 본 기억으론, 현역 대역폭의 1/4 이하(3.0 x16 기준이면 3.0 x4나 2.0 x8)부터 유의미한 저하가 나타났던 것 같네요.
2015.10.05 14:04
제목을 보고 엄청난 걸 기대했는데......제가 보기엔 너무 이론에 빠진 방향이 아닌가 싶네요.
마이크로스터터링의 실체가 확실하게 폭로된지도 오래되었고 NVIDIA가 직접 GDC에서 AFR의 문제점을 폭로(개별 프레임은 어짜피 한장이 렌더링 하니깐 프레임 렌더링 타임으로 인한 인풋렉은 한장 수준, 기존 프레임을 참조해야 될 경우 렉이 지대해서 차라리 프레임을 두개씩 매번 중복 렌더링 하는게 더 빠를지경)하고 FCAT를 대신해 간단하게 스터터링을 측정하는 percentile tool 의 활용사례까지 밝혔는데 너무 평균 프레임을 존중(?)하는 것 같네요.
파코즈닷컴/cw_qbj (그래픽 뉴스 게시판, 제목: GDC 2015, NVIDIA SLI 관련 세션 요약 )
다행이 퓨리X에서도 마이크로스터터링 개선이 있었는지, 쿨앤 최근 벤치에서는 980Ti와 게임별로 엎치락 뒤치락 하는 모습을 보입니다만, 본문 처음 그래프(피지 다시보기 : (2)의 결론 그래프 맞죠?)에서 타이탄X까지 쳐발라주시는 위엄과는 영 거리가 멀죠.
쿨엔조이닷넷/비비에스/boardc.php?id=review&no=28131&p=25 (사용기 게시판, 제목: R9 Fury X vs. GTX 980 Ti 마이크로 스터터링 )
아, 쿨앤벤치 최근이라고 적었는데 8월달 벤치네요.
13년도 블라인드 테스트에서, 프레임 페이싱에도 불구하고 발린거에 비해 최근이라고 생각해서 적은겁니다.
파코즈닷컴/cw_pda (그래픽 뉴스 게시판, 제목: 사람이 판단하는 Radeon HD 7990 vs GTX 690 )
신고">2015.10.05 18:11 신고
지표에 관한 (평균프레임) 준호님의 의견은 이전부터 잘 알고 있습니다만, 어떤 값을 성능지표로 삼아 분석할지에 관해 저희는 리뷰로 보여지는것 이상의 목적이 있기에 섣불리 교체할 수 없습니다. 업무 프로세스상 연구 목적으로 수행되는 테스트의 한 단면이 리뷰로 구성되는 만큼 그 부분을 논하는 것은 저에게는 의미가 없습니다.
쿨엔조이 벤치와 제 벤치에서는 사용한 게임이 다르고, 같은 게임이더라도 사용된 옵션이 달라 동일선상의 비교가 불가능합니다. 심지어 3/4-way의 경우 벤치마크가 진행되지조차 않았습니다. 게임이 같고 옵션이 같았더라면 다른 결과가 나왔을 경우 소명의 필요가 있을 수 있겠지만 그게 아니라면 저는 기본적으로 모든 개별 리뷰들의 독자성을 존중하는 입장입니다. 따라서 그에 관해서도 저는 드릴 말씀이 없습니다. 다른 곳의 리뷰가 보다 일반적인 게이머의 경험에 잘 부합한다고 생각하신다면 그 생각 역시 독립적인 것으로 저는 존중합니다.
마지막으로 한 가지 짚고 넘어가자면... 본문 첫 그래프이자 Fury X CF vs TITAN X SLI 벤치 마지막 그래프인 해당 그래프는 각 해상도/구성별 CF / SLI의 효율 그래프입니다. 절대성능 그래프는 벤치 원문의 마지막 두번째부터 네번째의 그래프이고, 2-way 구성시 실제로 Fury X는 과반수의 해상도에서 (FHD, QHD) TITAN X보다 성능이 낮습니다.
2015.10.05 18:36
아, 그렇군요. 답변감사합니다.