2010.07.15

병렬 처리 GPU vs. CPU : 가능성 높아지는 GPU 컴퓨팅

Sumner Lemon | IDG News Service

7월 초 인텔은 경쟁업체가 전후 관계를 무시하고 논문의 일부만을 블로그에 게시해 그 결과를 대대적으로 알리고 있다고 주장했다. 자사의 코어 i7 프로세서가 엔비디아 GPU의 병렬 처리 성능을 따라잡을 수 없음을 밝혀낸 최근 발표 논문에 대한 보도를 반박하고 나선 것이다.

 

인텔의 대변인 닉 너퍼는 이메일을 통해 “엔비디아는 논문의 아주 일부분만을 발췌해서 전후 관계를 무시하고 필요한 내용만 인용했다”고 지적했다.

 

하지만 이런 인텔의 주장에도 불구하고 논문의 결론은 명확하다. ISCA(International Symposium on Computer Architecture) 학회에서 발표된 “Debunking the 100x GPU vs. CPU myth: An evaluation of throughput computing on CPU and GPU”란 제목의 이 논문은 인텔 엔지니어가 작성했는데, 병렬 처리 환경에서는 GPU의 성능이 CPU를 큰 차이로 앞지른다는 주장에 반대 의견을 제시하기 위해 애쓰고 있다.

 

어쨌거나, 이 논문은 인텔의 가장 빠른 쿼드코어 데스크톱 프로세서 중 하나인 3.2GHz 코어 i7 960이 엔비디아의 구형 그래픽 카드인 GeForce GTX280보다 느리다는 사실이 인텔 엔지니어들이 수행한 벤치마크 시험에서 밝혀졌음을 여지없이 보여주고 있다.

 

이 논문은 “우리가 조사한 데이터는 GTX280이 14가지 커널에서 코어 i7에 비해 평균 2.5배 정도만 빨랐다는 것을 입증하고 있다”고 주장하고 있다. 일부 환경에서는 엔비디아의 GPU가 14배 이상 더 빨랐음도 언급하고 있다.

 

이에 엔비디아에서 인텔의 논문에 설명된 GPU의 성능에 의문을 제기하는 블로그 포스트를 올렸다. GPU 상에서 구동하도록 최적화된 소프트웨어를 사용해 100배 이상으로 성능을 향상시킨 10여 고객에 대한 링크도 제시했다.

 

엔비디아는 인텔 연구원들이 벤치마크 테스트를 수행하기 위해 자신들이 사용한 소프트웨어 코드와 데이터를 공개하지 않은 것도 지적했다. 이런 정보 없이는, 논문의 결론을 확인하기 위해 인텔의 시험을 반복하거나 개별 칩용으로 코드가 어떻게 최적화되었는지를 이해하는 것이 불가능하다.

 

엔비디아의 GPU 컴퓨팅 담당 총괄 책임자이자 이번 블로그 포스트를 올린 앤디 킨은 인텔의 논문에 대해 “그저 형편없는 과학일 뿐”이라고 평가했다.

 

병렬 처리의 가능성에는 모두 공감

이처럼 첨예한 경쟁 관계임에도 불구하고, 인텔과 엔비디아는 병렬 처리 기능의 중요성에 대해서는 선뜻 공감을 표했다. 양사의 유일한 의견 차이는 이런 병렬 처리 작업을 처리하기 위해 가장 적합한 구성요소가 CPU인지 아니면 GPU인지이며, 이는 각자의 제품 강점에 근거를 둔 주장이다.

 

x86 CPU 시장을 장악하고 있는 인텔은 자사의 칩에 이런 작업부하를 처리하기 위해 필요한 능력이 있다고 믿고 있는 반면에, 단독 제품 또는 독립형 그래픽 칩으로는 최대의 GPU 업체인 엔비디아는 GPU를 사용하는 것이 더 나은 선택이라고 생각하고 있다. GPU와 x86 CPU를 모두 판매하고 있는 AMD는 특정 애플리케이션에서는 GPU가 엄청난 성능 증가를 제공할 수 있다는 엔비디아의 견해에 동조하고 있다.

 

인텔의 논문은 병렬 처리에 있어서는 GTX280이 코어 i7 960에 비해 성능 이득이 있음을 인정함으로써 엔비디아와 AMD가 고수하고 있는 입장을 전반적으로 지지하고 있다.

 

CPU와 GPU 간의 성능 차이가 존재하는 이유는 두 가지 칩이 근본적으로 상이한 목적을 염두에 두고 설계되었기 때문이다. CPU는 순서대로 실행되는 일련의 명령어를 처리하도록 설계되었다. 멀티쓰레딩(Multithreading) 기능과 다중 코어의 출현으로 CPU에서도 상당한 수준의 병렬 처리가 가능하나, 엔비디아나 AMD가 비디오 인코딩 같은 특정 애플리케이션들에 대해 갖는 병렬 처리에 비하면 미미한 수준이다.

 

원래 수 천 개의 다각형을 그리고 실감나는 컴퓨터 그래픽을 위해 질감을 매핑하기 위해 사용되던 GPU는 동시에 여러 개의 작업을 처리할 수 있도록 설계된 병렬 프로세서이다. 개개 GPU 프로세서 코어는 CPU 코어보다 더 단순하고 덜 강력하지만 코어 i7 960 상에는 겨우 4개의 코어가 들어있는데 비해 엔비디아의 최신 GPU에는 코어가 수 백 개나 들어있다. 동시에 수 백 개의 작업을 처리할 수 있는 능력으로 인해 GPU는 병렬 처리의 이점을 확보할 수 있게 됐다.

 

인텔의 논문도 “오늘날의 CPU가 처리속도 지향적인 컴퓨팅 작업부하에 대해서는 최고의 단일 쓰레드 성능을 제공할 것이라는 점에 대해서는 어떤 의혹도 없다. 하지만, 현존 CPU의 제한된 코어 개수는 동시에 처리할 수 있는 데이터 조각의 수를 제한한다. 반면에, GPU는 여러 개의 병렬 처리 코어를 제공하므로 처리속도 지향적인 컴퓨팅에 이상적”이라고 인정하고 있다.

 

하지만, 하드웨어만으로는 부족하다. 최고의 성능을 얻기 위해서는 GPU 상에서 구동할 수 있도록 애플리케이션을 최적화해야만 한다. 이 작업은 많은 시간을 필요로 하고 비용도 많이 든다. 결과적으로, GPU 상에서 구동하도록 최적화된 대부분의 애플리케이션은 고성능을 통해 얻는 이득이 최적화의 추가 비용보다 훨씬 더 큰 재정 분석이나 석유 탐사 그리고 과학 연구 같은 다른 분야에서 주로 사용되고 있다.

 

일반 컴퓨팅 분야로 확산되는 GPU 가속

하지만 GPU 가속화 기능이 소비자나 업무용 소프트웨어 영역으로 점점 더 확대되고 있는 추세다.

 

이 기술을 처음으로 사용한 기업 중 한 곳이 애플인데, 자사의 최신 맥OS X 스노우 레오파드에서 일부 애플리케이션의 작업부하를 처리하기 GPU 사용 기능을 추가했다. 이외에도 프리미어 프로(Premiere Pro) CS5, 애프터 이펙트(After Effects) CS5, 그리고 포토샵(Photoshop) CS5에서 GPU 가속을 사용한 어도비(Adobe)가 있다. 마이크로소프트는 윈도우 7에 GPU 가속 기능을 포함시켰으며, IE 9 브라우저에도 이 기술을 추가했다.

 

이미지나 비디오 파일에 대한 데이터베이스 검색용 소프트웨어를 개발하고 있는 싱가포르의 신생 기업인 포티그래픽 랩스(Fortegrafik Labs) 같은 소규모 소프트웨어 회사 역시 GPU 가속에 매료되었다.

 

포티그래픽의 이미지 검색 소프트웨어는 한 개의 쿼드코어 인텔 제온 프로세서를 사용하는 서버 상에서 개발됐지만, 이런 유형의 애플리케이션에 대해서 CPU보다 더 효율적이고 소프트웨어를 대형 데이터베이스에서 사용할 수 있도록 해주기 때문에 GPU로 전환할 것을 고려하고 있다.

 

포티그래픽의 CEO 오리 코헨은고 성능에 비해 저렴한 GPU의 비용을 언급하며, “만약 인텔이 수백 개의 코어를 장착한 CPU를 경쟁력 있는 가격으로 공급해 준다면, 비디오 애플리케이션에서 CPU가 GPU에 대한 대안이 될 수도 있다”고 덧붙였다.  sumner_lemon@idg.com



2010.07.15

병렬 처리 GPU vs. CPU : 가능성 높아지는 GPU 컴퓨팅

Sumner Lemon | IDG News Service

7월 초 인텔은 경쟁업체가 전후 관계를 무시하고 논문의 일부만을 블로그에 게시해 그 결과를 대대적으로 알리고 있다고 주장했다. 자사의 코어 i7 프로세서가 엔비디아 GPU의 병렬 처리 성능을 따라잡을 수 없음을 밝혀낸 최근 발표 논문에 대한 보도를 반박하고 나선 것이다.

 

인텔의 대변인 닉 너퍼는 이메일을 통해 “엔비디아는 논문의 아주 일부분만을 발췌해서 전후 관계를 무시하고 필요한 내용만 인용했다”고 지적했다.

 

하지만 이런 인텔의 주장에도 불구하고 논문의 결론은 명확하다. ISCA(International Symposium on Computer Architecture) 학회에서 발표된 “Debunking the 100x GPU vs. CPU myth: An evaluation of throughput computing on CPU and GPU”란 제목의 이 논문은 인텔 엔지니어가 작성했는데, 병렬 처리 환경에서는 GPU의 성능이 CPU를 큰 차이로 앞지른다는 주장에 반대 의견을 제시하기 위해 애쓰고 있다.

 

어쨌거나, 이 논문은 인텔의 가장 빠른 쿼드코어 데스크톱 프로세서 중 하나인 3.2GHz 코어 i7 960이 엔비디아의 구형 그래픽 카드인 GeForce GTX280보다 느리다는 사실이 인텔 엔지니어들이 수행한 벤치마크 시험에서 밝혀졌음을 여지없이 보여주고 있다.

 

이 논문은 “우리가 조사한 데이터는 GTX280이 14가지 커널에서 코어 i7에 비해 평균 2.5배 정도만 빨랐다는 것을 입증하고 있다”고 주장하고 있다. 일부 환경에서는 엔비디아의 GPU가 14배 이상 더 빨랐음도 언급하고 있다.

 

이에 엔비디아에서 인텔의 논문에 설명된 GPU의 성능에 의문을 제기하는 블로그 포스트를 올렸다. GPU 상에서 구동하도록 최적화된 소프트웨어를 사용해 100배 이상으로 성능을 향상시킨 10여 고객에 대한 링크도 제시했다.

 

엔비디아는 인텔 연구원들이 벤치마크 테스트를 수행하기 위해 자신들이 사용한 소프트웨어 코드와 데이터를 공개하지 않은 것도 지적했다. 이런 정보 없이는, 논문의 결론을 확인하기 위해 인텔의 시험을 반복하거나 개별 칩용으로 코드가 어떻게 최적화되었는지를 이해하는 것이 불가능하다.

 

엔비디아의 GPU 컴퓨팅 담당 총괄 책임자이자 이번 블로그 포스트를 올린 앤디 킨은 인텔의 논문에 대해 “그저 형편없는 과학일 뿐”이라고 평가했다.

 

병렬 처리의 가능성에는 모두 공감

이처럼 첨예한 경쟁 관계임에도 불구하고, 인텔과 엔비디아는 병렬 처리 기능의 중요성에 대해서는 선뜻 공감을 표했다. 양사의 유일한 의견 차이는 이런 병렬 처리 작업을 처리하기 위해 가장 적합한 구성요소가 CPU인지 아니면 GPU인지이며, 이는 각자의 제품 강점에 근거를 둔 주장이다.

 

x86 CPU 시장을 장악하고 있는 인텔은 자사의 칩에 이런 작업부하를 처리하기 위해 필요한 능력이 있다고 믿고 있는 반면에, 단독 제품 또는 독립형 그래픽 칩으로는 최대의 GPU 업체인 엔비디아는 GPU를 사용하는 것이 더 나은 선택이라고 생각하고 있다. GPU와 x86 CPU를 모두 판매하고 있는 AMD는 특정 애플리케이션에서는 GPU가 엄청난 성능 증가를 제공할 수 있다는 엔비디아의 견해에 동조하고 있다.

 

인텔의 논문은 병렬 처리에 있어서는 GTX280이 코어 i7 960에 비해 성능 이득이 있음을 인정함으로써 엔비디아와 AMD가 고수하고 있는 입장을 전반적으로 지지하고 있다.

 

CPU와 GPU 간의 성능 차이가 존재하는 이유는 두 가지 칩이 근본적으로 상이한 목적을 염두에 두고 설계되었기 때문이다. CPU는 순서대로 실행되는 일련의 명령어를 처리하도록 설계되었다. 멀티쓰레딩(Multithreading) 기능과 다중 코어의 출현으로 CPU에서도 상당한 수준의 병렬 처리가 가능하나, 엔비디아나 AMD가 비디오 인코딩 같은 특정 애플리케이션들에 대해 갖는 병렬 처리에 비하면 미미한 수준이다.

 

원래 수 천 개의 다각형을 그리고 실감나는 컴퓨터 그래픽을 위해 질감을 매핑하기 위해 사용되던 GPU는 동시에 여러 개의 작업을 처리할 수 있도록 설계된 병렬 프로세서이다. 개개 GPU 프로세서 코어는 CPU 코어보다 더 단순하고 덜 강력하지만 코어 i7 960 상에는 겨우 4개의 코어가 들어있는데 비해 엔비디아의 최신 GPU에는 코어가 수 백 개나 들어있다. 동시에 수 백 개의 작업을 처리할 수 있는 능력으로 인해 GPU는 병렬 처리의 이점을 확보할 수 있게 됐다.

 

인텔의 논문도 “오늘날의 CPU가 처리속도 지향적인 컴퓨팅 작업부하에 대해서는 최고의 단일 쓰레드 성능을 제공할 것이라는 점에 대해서는 어떤 의혹도 없다. 하지만, 현존 CPU의 제한된 코어 개수는 동시에 처리할 수 있는 데이터 조각의 수를 제한한다. 반면에, GPU는 여러 개의 병렬 처리 코어를 제공하므로 처리속도 지향적인 컴퓨팅에 이상적”이라고 인정하고 있다.

 

하지만, 하드웨어만으로는 부족하다. 최고의 성능을 얻기 위해서는 GPU 상에서 구동할 수 있도록 애플리케이션을 최적화해야만 한다. 이 작업은 많은 시간을 필요로 하고 비용도 많이 든다. 결과적으로, GPU 상에서 구동하도록 최적화된 대부분의 애플리케이션은 고성능을 통해 얻는 이득이 최적화의 추가 비용보다 훨씬 더 큰 재정 분석이나 석유 탐사 그리고 과학 연구 같은 다른 분야에서 주로 사용되고 있다.

 

일반 컴퓨팅 분야로 확산되는 GPU 가속

하지만 GPU 가속화 기능이 소비자나 업무용 소프트웨어 영역으로 점점 더 확대되고 있는 추세다.

 

이 기술을 처음으로 사용한 기업 중 한 곳이 애플인데, 자사의 최신 맥OS X 스노우 레오파드에서 일부 애플리케이션의 작업부하를 처리하기 GPU 사용 기능을 추가했다. 이외에도 프리미어 프로(Premiere Pro) CS5, 애프터 이펙트(After Effects) CS5, 그리고 포토샵(Photoshop) CS5에서 GPU 가속을 사용한 어도비(Adobe)가 있다. 마이크로소프트는 윈도우 7에 GPU 가속 기능을 포함시켰으며, IE 9 브라우저에도 이 기술을 추가했다.

 

이미지나 비디오 파일에 대한 데이터베이스 검색용 소프트웨어를 개발하고 있는 싱가포르의 신생 기업인 포티그래픽 랩스(Fortegrafik Labs) 같은 소규모 소프트웨어 회사 역시 GPU 가속에 매료되었다.

 

포티그래픽의 이미지 검색 소프트웨어는 한 개의 쿼드코어 인텔 제온 프로세서를 사용하는 서버 상에서 개발됐지만, 이런 유형의 애플리케이션에 대해서 CPU보다 더 효율적이고 소프트웨어를 대형 데이터베이스에서 사용할 수 있도록 해주기 때문에 GPU로 전환할 것을 고려하고 있다.

 

포티그래픽의 CEO 오리 코헨은고 성능에 비해 저렴한 GPU의 비용을 언급하며, “만약 인텔이 수백 개의 코어를 장착한 CPU를 경쟁력 있는 가격으로 공급해 준다면, 비디오 애플리케이션에서 CPU가 GPU에 대한 대안이 될 수도 있다”고 덧붙였다.  sumner_lemon@idg.com



X