MIT CSAIL, 머신러닝 시스템을 통해 개발자는 다양한 애플리케이션에서 컴퓨팅 효율성을 향상 시킬 수 있다.

MIT 칩에서 코드가 얼마나 빨리 실행될지 '예측하는 AI'개발

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

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

이에 MIT 컴퓨터 과학 및 인공지능연구소(CSAIL) 연구팀은 컴퓨터 칩이 다양한 응용 프로그램에서 코드를 얼마나 빨리 실행할지 예측하는 머신러닝 시스템 개발했다.

먼저 연구팀은 지난해 6 월 국제 머신러닝 컨퍼런스에서 발표 된 논문(다운받기)에서 기본적 스니펫(snippets)인 '기본 블록(basic blocks)' 형태로 라벨이 지정된 데이터를 학습하여 신경망 모델 'Ithemal'을 제시했다. 이 모델은 이전에 보지 못한 기본 블록을 실행하기 위해 주어진 칩을 사용해 기존의 수동 튜닝 모델보다 훨씬 정확하게 수행했다.

이어 11 월 IEEE 국제 작업 심포지엄 심포지엄에서 연구원들은 머신러닝, 컴파일러, 암호화 및 성능 모델을 검증하는 데 사용할 수 있는 그래픽을 포함한 다양한 도메인의 기본 블록 벤치 마크를 발표(다운받기)했다. 이들은 30 만 개 이상의 프로파일링 된 블록을 BHive라는 오픈 소스 데이터 세트에 통합했다. 이 평가 과정에서 Ithemal은 인텔 자체가 구축한 성능 모델보다 인텔 칩이 얼마나 빨리 코드를 실행하는지 예측했다.

궁극적으로 개발자와 컴파일러는 이 도구를 사용하여 점점 증가하는 다양한 불투명하고 복잡하며 이해하기 어려운 '블랙 박스(black box)' 칩 설계에서 보다 빠르고 효율적으로 실행되는 코드를 생성할 수 있었다.

또 연구팀은 가장 최근인 지난해 12월 NeurIPS 컨퍼런스에서 발표 된 논문(다운받기)에서 이 팀은 컴파일러 최적화를 자동으로 생성하는 새로운 기술을 제안했다. 특히 '베말(Vemal)'이라는 이 알고리즘을 자동으로 생성하여 특정 코드를 벡터로 변환하여 병렬 컴퓨팅에 사용할 수 있다. 베말은 업계에서 널리 사용되는 컴파일러 'LLVM(Low Level Virtual Machine)'을 능가한다.

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

또한 논문에서 Ithemal의 오류율이 10 % 인 반면, 인텔 성능 예측 모델의 오류율은 여러 도메인의 다양한 기본 블록에서 20 % 였다.

결과적으로 이 툴을 사용하여 새로운 칩 아키텍처의 성능 속도를 보다 빠르게 익힐 수 있다. 예를 들어, 신경망에 특별히 사용되는 구글의 새로운 구글 텐서 프로세싱 유닛(Tensor Processing Unit, TPU)과 같은 도메인 별 아키텍처가 현재 구축되고 있지만 널리 이해되지는 않는다. 이처럼 일부 새로운 아키텍처에서 모델을 학습하려면 해당 아키텍처에서 더 많은 데이터를 수집하고 프로파일러를 통해 실행하고 해당 정보를 사용하여 Ithemal을 학습하면 성능을 예측하는 모델을 갖게 된다.

한편, 대부분의 머신러닝은 블랙박스로 특정 모델이 왜 예측을 했는지 분명하지 않다. 이에 연구팀은 향후 모델을 해석할 수 있게 만드는 방법을 연구하고 있다.

저작권자 © 인공지능신문 무단전재 및 재배포 금지