게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
PS4 메모리 아키텍쳐&캐쉬우회 한국어로 해석 가능하신분
게시물ID : computer_87935짧은주소 복사하기
작성자 : GT60
추천 : 0
조회수 : 627회
댓글수 : 3개
등록시간 : 2013/05/13 20:02:48

출처 http://www.parkoz.com/zboard/view.php?id=int_vganews&no=10762


소니의 시스템 설계사인 Mark Cerny씨가 Gamasutra와의 인터뷰에서 PS4의 아키텍쳐에 대하여 설명했습니다.

주로 GPGPU 측면에서 설명하였는데, 몇가지 흥미로운 점이 있습니다. 어떻게 보면 AMD의 목표와도 많은 점에서 공유되는 관점이 있습니다.

 

----------------------------

 

···Cerny씨는 앞으로 개발자들이 GPU를 단순한 그래픽용도 이상으로 사용하고 싶어할 것이라고 확신하게 되었다. 그리고 그를 위한 유연성과 강력함을 갖춘 솔루션을 찾았다고 생각하고 있다. “GPU를 그래픽과 연산 기능에 동시에 활용하는 것이 비젼이다. 우리는 PS4의 제품 수명 중간 즈음해서 비동기성 연산 기술은 매우 중요한 게임 기술이 되어 있을 것이라 믿는다.”

Cerny씨는 “GPU에서 작동하는 10여개의 프로그램”을 상상한다. 이를 통해 “물리 연산을 하고, 충돌 계산을 하며, 오디오 처리와 레이 트레이싱을 하게 되는” 것이다.

 

그러나 전통적인 PC 하드웨어 환경에서는 CPU, GPU, RAM 사이의 통신이라는 한가지 장벽이 있다고 그는 설명한다. PS4의 아키텍쳐는 이 문제를 해결하기 위해서 디자인되었다.

 

“일반적인 PC GPU에는 두가지 버스가 있다”고 Cerny씨는 말했다. “GPU가 VRAM에 접근하기 위한 버스이고, PCI익스프레스를 통해서 시스템 메모리에 접근하기 위한 두번째 버스가 있다. 그러나 그 어떤 버스가 사용되던 간에, GPU 내부의 캐쉬가 CPU/GPU간의 통신에 거대한 장벽으로 작용하게 된다. 매번 GPU가 CPU가 쓴 정보를 읽거나, 혹은 CPU가 읽을 수 있도록 GPU가 데이터를 쓰려고 할 때에는, 많은 시간이 소모되는 GPU 캐쉬 초기화 작업이 필수가 되어버린다.”

 

(생략)

 

이러한 비젼을 지원하기 위해서 소니측은 3가지 중요한 변경점을 아키텍쳐에 적용했다고 Cerny씨는 말한다:

 

“먼저, 우리는 GPU에 또 다른 버스를 추가해서 GPU 자신의 L1과 L2 캐쉬를 거치지 않고 시스템 메모리로부터 직접 읽거나 쓰게 했다. 그 결과, CPU와 GPU간의 주고받는 데이터의 크기가 작을 경우, 더 이상 양측의 동기화 문제는 발생하지 않는다. 여기서 작다는 것은 차세대 콘솔 기준에서 작다는 것이다. 그리고 오늘날의 기준으로는 절대로 작은게 아니다. 상당수의 PC에서도 PCIe보다도 큰 양이다!”

 

“다음으로, GPU L2 캐쉬를 그래픽 처리와 비동기적 컴퓨트에 동시에 쓰고 싶을 때를 위해서 우리는 캐쉬 라인에 “휘발성(Volatile)” 비트라는 태그를 추가하였다. 모든 컴퓨트 기능에 의한 접근을 선택적으로 volatile 표지가 가능하며, 컴퓨트 기능이 시스템 메모리로부터 데이터를 읽어들일 때에 사용중인 L2에서 선택적으로 캐쉬를 무효화 할 수 있게된다. 그리고 데이터를 쓰게 될 때에는 선택적으로 사용중인 데이터를 쓸 수 있다. 이 혁신은 컴퓨트 기능이 GPU의 L2 캐쉬를 사용하면서 동시에 그래픽 처리 성능을 크게 저하시키지 않을 수 있게 해 준다. 다시 말해서, GPU에서 컴퓨트와 그래픽을 동시에 처리할 때의 오버헤드를 극적으로 감소시킨다는 것이다.”

 

Cerny씨가 말하길 세번째로는 “오리지널 AMD의 GCN 아키텍쳐는 1개의 소스의 그래픽 명령어와 2개의 소스의 컴퓨트 명령어를 허용한다. PS4를 위해서 우리는 AMD와 함께 컴퓨트 명령어 제한을 64개까지 늘리도록 작업했다. 즉 비동기적인 컴퓨트를 해야 할 때에, 64개의 큐 중 하나에 명령어를 집어넣게 되고, 하드웨어상에서 여러 단계의 중재 과정을 거쳐서 무엇이, 어떻게, 언제 그래픽 처리작업과 함께 실행될지 결정하게 된다.” “이토록 많은 갯수의 컴퓨트 작업 소스가 필요한 것은, 컴퓨트 작업에는 단지 게임 시스템만이 필요한게 아니기 때문이다. 미들웨어도 컴퓨트 기능이 필요하다. 그리고 GPU에 작업 요청을 하는 미들웨어들은 게임의 처리요구와 적절히 배합되어 최종적으로 때에 따라서 그래픽 처리에 대해서 상대적인 우선 순위가 매겨지게 될 것이다.”

 

이러한 컨셉은 소니가 예전에 개발했던 SPURS라는 소프트웨어에서 시작되었다. 이는 프로그래머들이 CELL의 SPU에서 태스크들을 재배치하도록 돕기 위해서 개발했던 것이나, PS4에서는 이것은 하드웨어적으로 처리되는 것이다.

 

“우리의 전반적인 접근방법은 컴퓨트와 그래픽을 어떻게 배합할 것인가에 대한 다수의 제어법을 제공하고, 개발자 커뮤니티에서 언제 어떤 것을 사용할지 깨닫게 하여 점차 대량의 비동기적 컴퓨트를 하도록 하는 것이다”

 

Cerny씨는 개발자들이 물리연산과 같은 미들웨어를 GPU에서 처리할 것으로 예상하고 있다. 앞서 설명한 이러한 시스템을 활용하면 최대의 효율로 구동이 가능하다고 한다.

 

“게임 실행중에 프레임마다 컴퓨트 가능한 GPU의 자원을 살펴보게 된다면, 때에 따라서 매우 다르다는 것을 알 수 있다. 예를들어, 불투명 그림자 맵 렌더링 같은 것은 픽셀셰이더 기능은 아예 쓰지도 않고, 버텍스와 라스터라이저만을 사용해서 수행된다. 따라서 그래픽 처리에 CU가 가진 1.8테라플롭스의 연산 유닛을 다 쓰지도 않는 것이다. 게임 실행중에 이러한 때가 오게 된다면 '좋아, 컴퓨트를 최대로 돌릴 때다'라고 말할 기회라고 할 수 있다.”

 

(후략)

 

-------------------


번역 : 파코즈 - 박용준 [hybreeder]님






좀 간략하게 나온거....

캐쉬 우회

 


일반적인 PC

 

GPU 캐쉬 점유하고 작업 중일때

 

CPU가 연산결과 GPU에 전달해야 하는 상황
GPU GPU 캐쉬를 지우고 
CPU -> 메모리 -> GPU캐쉬(캐쉬지움) -> GPU 전달

 

GPU가 연산결과 CPU에 전달해야 하는 상황
이때도 GPU는 GPU캐쉬를 지우고 
GPU -> GPU캐쉬(캐쉬지움) -> 메모리 -> CPU 전달

 

 

PS4

 

GPU 캐쉬 점유하고 작업 중일때

 

CPU가 연산결과 GPU에 전달해야 하는 상황
GPU 캐쉬 안지우고 다이렉트로 전달
CPU-> 메모리 -> GPU가 작업중인 캐쉬데이터 안지우고 다이렉트로 GPU 전달

 

GPU가 연산결과 CPU에 전달해야 하는 상황
GPU 캐쉬 안지우고 다이렉트로 전달
GPU 작업중인 캐쉬 데이터 안지우고 다이렉트로 -> 메모리 -> CPU 전달

 

 

 

 

추가적인 커스터마이즈 내용는 아래와 같습니다.

 

- L2 캐쉬에 태그를 붙여놓았다. 우리는 VOLATILE태그로 부른다.
이 태그를 사용한 경우는 메모리에 직접 전달 가능 
그 결과 모든 캐쉬를 그래픽 처리에 효율적으로 사용하기 되었다.

 

캐쉬우회/VOLATILE태그는 그래픽처리와 연산처리를 보다 효율적으로 동작하기 위한구조
PS3에서 성공한 SPU런타임시스템 재현하고자했다.
SPU RS는 SPU등의 리소스를 가상화해 자율적으로 관리하는 구조이다.


- 8개 파이프가 각각 8개의 연산큐를 가진다. 
(AMD R10XX  Southern Islands 2개 파이프에 2개연산큐 를 가집니다.)
그래픽처리를 실행하는 동시에 각각 큐에서 물리연산미들웨어나 손수만든워크플로우등을 실행할수 있다.


- 우리 스스로의 쉐이더 언어를 가지고있는데 향후는 보다 깊이 있는 하드웨어 레밸의 엑세스 관리기능을 제공해 나간다.
- 한층 더 중기적인 타겟으로는 OpenGL이나 DirectX등의 PC, 그리고 일반적인 언어도 하드웨어 완전 엑세스를 제공할것이다.

 

- CPU와 GPU 꽤 특징이 다른것이기때문에 지금단계에서는 
HSA과 같은 아키텍쳐에 근거하는 통일적인 언어를 이용했을경우 효율성을 높여 사용하는것은 어렵다. 
그러나 CPU와 GPU 같은 언어를 사용할수 있게 되면 개발의 효율성은 비약적으로 높아진다.

이러한 부분에 대해서는 장기적인 목표가 될것이다.


꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호