주의:
이 특허가 루머의 AI 최적화 드라이버와 관련 없을 수도 있습니다.
MS번역
========
Real-time hardware-assisted GPU tuning using machine learning
기계 학습을 통한 실시간 하드웨어 기반 GPU 튜닝
상세 설명
본 발명의 실시예들은 특정 동작 파라미터들을 결정하기 위해 기계 학습을 적용함으로써 다중 처리 유닛의 실시간 동작을 개선한다. 일 실시예에서, 멀티프로세싱 유닛은 그래픽 처리 유닛(GPU)을 포함한다.
멀티프로세싱 유닛은 서로 다른 성능 관련 값을 실시간으로 측정하도록 구성된 논리 회로로 구성된 성능 모니터링 카운터(PM)를 포함한다. 일 실시예에서, PM들은 메모리 요청 카운터, 메모리 시스템 대역폭 이용, 메모리 시스템 저장 용량 이용률, 캐시 적중률, 멀티스레드 프로그램의 하나 이상의 스레드에 대해 클록 사이클 당 실행된 명령어의 카운트, 및 멀티스레드 프로그램의 하나 이상의 스레드에 대해 실행된 명령어의 카운트 중 적어도 하나를 모니터링하도록 구성될 수 있다. 더욱이, PM은 프로세싱 코어에 대해 그려진 픽셀들에 대한 값, 음영처리된 픽셀들 및/또는 프리미티브들의 카운트, 터치된 스크린 타일들, 현재의 클럭 레이트들, 및 메모리 및/또는 산술 연산들의 카운트들을 모니터링하도록 구성될 수 있다. PM은 결과 모니터 값을 실시간으로 보고하거나 PM은 구조화된 액세스 회로를 통해 모니터 값을 보고할 수 있습니다. 더욱이, 멀티프로세싱 유닛은 멀티프로세싱 유닛이 동작을 수행하는 방법을 결정하는 하나 이상의 상이한 동작 파라미터에 따라 동작하도록 구성될 수 있지만, 그렇지 않으면 동작의 최종 결과를 변경하지 않는다. 예를 들어, 오퍼레이팅 파라미터는 동시에 실행되는 관련 스레드의 최대 수(예를 들어, 동시성의 정도)를 특정할 수 있다. 운영 파라미터는 타일 캐싱 또는 다양한 다른 형태의 캐싱 또는 캐싱 정책을 활성화할지 여부를 지정할 수 있습니다. 또한, 동작 파라미터는 코어 클럭 주파수, 메모리 인터페이스 클럭 주파수 등을 특정할 수 있다.
다양한 PM 값에 응답하여 작동 파라미터를 튜닝하면 멀티프로세싱 장치의 처리량 및/또는 전력 효율을 향상시킬 수 있습니다. 주어진 다중 처리 장치에는 수천 개의 PM과 다중 처리 장치의 작동을 조정하기 위해 변경할 수 있는 여러 가지 작동 매개 변수가 포함될 수 있습니다. 선행 기술 휴리스틱 기반 솔루션은 일반적으로 실시간으로 작동 할 수 없으며, 제한된 워크로드 및 매개 변수 세트를 기반으로 하드 코딩되는 경향이 있으며, 동적으로 업데이트 할 수 없으며, 특정 응용 프로그램 (예 : 다중 스레드 응용 프로그램)에 대한 다중 처리 장치 작업을 효과적으로 조정하기 위해 두드러진 PM 값 및 기타 상태 데이터를 선택하고 활용하지 못할 수 있습니다. 대조적으로, 기계 학습 기술을 적용하여 작동 매개 변수를 결정하고 작동 목표와 더 높은 상관 관계를 갖는 PM 값을 선택 및 적절하게 활용하고 다른 상태 데이터를 원활하게 통합하여 작동 매개 변수를보다 효과적으로 조정할 수 있습니다. 신경망 기반 접근 방식을 구현하는 기계 학습 접근 방식은 계산 비용과 대기 시간을 모두 고려하는 제약 조건을 기반으로 효율성 및/또는 최적의 PM 값 또는 기능 집합을 선택할 수 있습니다. 더욱이, PM 값들(및 다른 관련 입력들)에 기초하여 동작 파라미터들을 결정하기 위해 구현된 신경망은 실시간으로 동작할 수 있고, 동적으로 업데이트될 수 있다.
다중 처리 장치에서 실행되는 지정된 응용 프로그램에는 시간이 지남에 따라 리소스 사용률이 다양하여 실행 중에 다양한 PM 값이 발생하는 특정 작업 프로필을 가질 수 있습니다. 신경망 서브시스템은 멀티프로세싱 유닛으로부터 PM 값들을 수신하고, 또한 어플리케이션 상태, 현재 동작 파라미터 상태, 및 멀티프로세싱 유닛에 대한 드라이버 큐들을 포함하는 하나 이상의 형태의 다른 상태 데이터를 수신할 수 있다. 신경망 서브시스템은 다중 처리 장치로 다시 전송되는 동작 파라미터를 생성합니다. 애플리케이션이 진행되고 애플리케이션 실행 과정에서 PM 값이 변경되면 신경망은 다중 처리 장치의 지속적인 작동을 조정하기 위해 작동 매개 변수를 업데이트하여 응답합니다.
신경망은 주어진 애플리케이션의 실행을 위한 모델 파라미터를 생성하기 위해 개별적으로(예를 들어, 오프라인으로) 훈련될 수 있다. 상이한 애플리케이션들은 상이한 모델 파라미터들(예를 들어, 중량들 및/또는 활성화들)을 가질 수 있다. 또한 지정된 응용 프로그램의 다른 부분은 다른 모델 매개 변수를 가질 수 있습니다. 모델 파라미터는 애플리케이션을 시작하기 전에 신경망 서브시스템에 로드될 수 있으며, 모델 파라미터는 애플리케이션이 실행될 때 업데이트될 수 있다.
모델 파라미터들은 각각의 상이한 애플리케이션에 대한 신경망 서브시스템의 오프라인 트레이닝 동안에 결정될 수 있고, 잠재적으로 주어진 애플리케이션의 각각의 상이한 동작 모드(예를 들어, 게임 레벨)에 대해 결정될 수 있다. 또한 강화 모델을 사용하면 지정된 응용 프로그램의 런타임 동안 모델 매개 변수를 추가로 훈련할 수 있습니다.
======
요약:
기존 방식(현재의 게임 레디 드라이버):
- 사람의 손에 의해
- 제한적인 성능 파라미터를
- 하드코딩하였으나
특허 방식:
- 머신러닝에 의해
- 광범위한 성능 파라미터를
- 오프라인 훈련 또는 실시간 훈련 및 적용
(IP보기클릭)211.51.***.***
(IP보기클릭)223.62.***.***