제퍼넷 로고

칩에서 코드가 얼마나 빨리 실행 될지 예측하는 툴

시간

MIT 연구원은 컴퓨터 칩이 다양한 응용 프로그램에서 코드를 얼마나 빨리 실행할지 예측하는 기계 학습 도구를 발명했습니다.  

코드를 가능한 빨리 실행하려면 개발자와 컴파일러 (프로그래밍 언어를 기계가 읽을 수있는 코드로 변환하는 프로그램)는 일반적으로 주어진 칩 아키텍처의 시뮬레이션을 통해 코드를 실행하는 성능 모델을 사용합니다. 

컴파일러는이 정보를 사용하여 코드를 자동으로 최적화하고 개발자는이 정보를 사용하여이를 실행할 마이크로 프로세서의 성능 병목 현상을 해결합니다. 그러나 머신 코드의 성능 모델은 비교적 작은 전문가 그룹이 직접 작성하며 제대로 검증되지 않았습니다. 결과적으로 시뮬레이션 된 성능 측정은 실제 결과와 다른 경우가 많습니다. 

일련의 회의 논문에서 연구원들은이 프로세스를 자동화하여보다 쉽고 빠르며 정확하게 만드는 새로운 기계 학습 파이프 라인을 설명합니다. 안에 종이 XNUMX 월 국제 기계 학습에 관한 컨퍼런스에서 발표 된 연구자들은 레이블이 지정된 데이터를 "기본 블록"의 형태로 훈련하는 신경망 모델 인 이더 멀 (Ithemal)을 발표했다. 이전에 보지 못한 기본 블록을 실행하는 칩. 결과에 따르면 Ithemal은 기존의 수동 튜닝 모델보다 훨씬 정확하게 수행됩니다. 

그런 다음, XNUMX 월 작업 부하 특성에 관한 IEEE 국제 심포지엄에서 연구원들은 제시 성능 모델을 검증하는 데 사용할 수있는 머신 러닝, 컴파일러, 암호화 및 그래픽을 포함한 다양한 도메인의 기본 블록 벤치 마크 제품군입니다. 그들은 프로파일 링 된 300,000 개 이상의 블록을 BHive라는 오픈 소스 데이터 세트에 풀링했습니다. 평가 중에 Ithemal은 인텔 칩이 인텔 자체에서 구축 한 성능 모델보다 훨씬 더 빨리 코드를 실행하는 속도를 예측했습니다. 

궁극적으로 개발자와 컴파일러는이 도구를 사용하여 점점 늘어나는 다양하고 "블랙 박스"칩 설계에서 더 빠르고 효율적으로 실행되는 코드를 생성 할 수 있습니다. “현대 컴퓨터 프로세서는 불투명하고 끔찍하게 복잡하며 이해하기 어렵습니다. 또한 이러한 프로세서에 대해 가능한 한 빨리 실행되는 컴퓨터 코드를 작성하는 것은 믿을 수 없을 정도로 어려운 일입니다.”라고 전기 공학 및 컴퓨터 과학과 (EECS)의 조교수이자 미국의 연구원 인 마이클 카빈 (Michael Carbin)은 세 가지 논문의 공동 저자가 말했습니다. 컴퓨터 과학 및 인공 지능 연구소 (CSAIL). "이 도구는 효율성 향상을 위해 이러한 칩의 성능을 완전히 모델링하기위한 큰 진전입니다."

가장 최근에 종이 XNUMX 월 NeurIPS 컨퍼런스에서 발표 된 팀은 컴파일러 최적화를 자동으로 생성하는 새로운 기술을 제안했습니다. 특히, Vemal이라는 알고리즘을 자동으로 생성하여 특정 코드를 벡터로 변환하여 병렬 컴퓨팅에 사용할 수 있습니다. Vemal은 업계에서 널리 사용되는 컴파일러 인 LLVM 컴파일러에 사용되는 수작업 벡터화 알고리즘을 능가합니다.

데이터로부터 배우기

Carbin은 수작업으로 성능 모델을 설계하는 것이 "검은 색 예술"이 될 수 있다고 말합니다. 인텔은 칩 아키텍처를 설명하는 3,000 페이지가 넘는 광범위한 문서를 제공합니다. 그러나 현재 이러한 아키텍처에서 코드 실행을 시뮬레이션하는 성능 모델을 구축 할 소규모 전문가 그룹 만 있습니다. 

EECS와 CSAIL의 대학원생 인 Charith Mendis는“Intel의 문서는 오류가없고 완전하지 않으며, 인텔은 독점이기 때문에 특정 사항을 생략 할 것”이라고 말했다. “하지만 데이터를 사용할 때 설명서를 몰라도됩니다. 숨겨진 것이 있다면 데이터에서 직접 배울 수 있습니다.”

이를 위해 연구원들은 사람의 개입없이 기본 블록 명령 (기본적으로 부팅 순서, 실행 및 종료 순서)을 계산하기 위해 주어진 마이크로 프로세서가 수행하는 평균주기 수를 기록했습니다. 프로세스를 자동화하면 수십만 또는 수백만 블록의 신속한 프로파일 링이 가능합니다. 

도메인 별 아키텍처

교육 과정에서 Ithemal 모델은 자동으로 프로파일 링 된 수백만 개의 기본 블록을 분석하여 다양한 칩 아키텍처가 어떻게 계산을 수행하는지 정확하게 학습합니다. 중요하게, Ithemal은 원시 텍스트를 입력으로 사용하며 입력 데이터에 기능을 수동으로 추가 할 필요가 없습니다. 테스트에서 Ithemal은 이전에 볼 수 없었던 기본 블록과 특정 칩을 공급할 수 있으며 칩이 해당 코드를 얼마나 빨리 실행할지 나타내는 단일 숫자를 생성합니다. 

연구원들은 정확도면에서 Ithemal 컷 오류율 (예측 된 속도와 실제 속도의 차이를 의미 함)을 기존의 수작업 모델에 비해 50 %까지 줄였습니다. 또한 다음 논문에서 그들은 Ithemal의 오류율이 10 % 인 반면 Intel 성능 예측 모델의 오류율은 여러 도메인에 걸쳐 다양한 기본 블록에서 20 %임을 보여주었습니다.

Mendis는이 툴을 사용하여 새로운 칩 아키텍처의 성능 속도를보다 신속하게 익힐 수 있다고 말했다. 예를 들어, 신경망에 특별히 사용되는 Google의 새로운 Tensor Processing Unit과 같은 도메인 별 아키텍처가 현재 구축되고 있지만 널리 이해되지는 않습니다. Mendis는“일부 새로운 아키텍처에서 모델을 학습하려면 해당 아키텍처에서 더 많은 데이터를 수집하고 프로파일 러를 통해 실행하고 해당 정보를 사용하여 Ithemal을 학습하면 성능을 예측하는 모델을 갖게됩니다.

다음으로 연구원들은 모델을 해석 할 수있게 만드는 방법을 연구하고 있습니다. 대부분의 머신 러닝은 블랙 박스이므로 특정 모델이 왜 예측을했는지 분명하지 않습니다. “우리 모델은 기본 블록을 실행하는 데 프로세서, 즉 10 사이클이 필요하다고 말합니다. 카빈은 이렇게 말합니다. "이러한 유형의 도구에는 놀라운 수준의 세분성이 있습니다."

또한 Imal을 사용하여 Vemal의 성능을 더욱 향상시키고 자동으로 더 나은 성능을 달성하기를 희망합니다.


출처 : http://news.mit.edu/2020/tool-how-fast-code-run-chip-0106

spot_img

최신 인텔리전스

spot_img