특히 클라우드 기반 프로세서를 제조하는 유명 제조업체 일체 포함AMD와 Nvidia와 같은 기업은 소프트웨어, 상호 연결 및 서버 제조업체를 인수하여 컴퓨팅 사업을 더 많이 소유하고자 하는 징후를 보였습니다. “풀 스택”을 제어하면 고객이 원하는 것을 설계하는 데 있어 우위를 점할 수 있을 것이라는 희망이 있습니다.
아마존 웹 서비스(AWS) 2015년에 칩 설계업체인 안나푸르나 랩스를 인수하고 수직 통합 사업으로 CPU, AI 가속기, 서버, 데이터 센터를 설계하면서 대부분 경쟁사보다 앞서나갔습니다. 알리 사이드Graviton 시리즈 CPU의 기술 책임자이자 라미 신노Annapurna Labs의 엔지니어링 책임자는 수직 통합 디자인과 Amazon 규모의 이점을 설명했습니다. IEEE 스펙트럼 회사 주변 하드웨어 테스트 랩 8월 27일 텍사스 주 오스틴에서.
Saidi와 Sinno의 이야기:
라미, Amazon Web Services에 들어오게 된 계기는 무엇인가요?
라미 신노한국어: AWS
라미 그렇지 않으면: Amazon은 제 첫 수직 통합 회사입니다. 그리고 그것은 의도적이었습니다. 저는 팔그리고 나는 다음 모험을 찾고 있었고, 산업이 어디로 향하고 있는지, 그리고 내 유산이 무엇이기를 바라는지 살펴보았습니다. 나는 두 가지를 살펴보았습니다.
하나는 수직 통합 기업입니다. 혁신이 대부분 일어나는 곳이기 때문입니다. 전체 하드웨어와 소프트웨어 스택을 제어하고 고객에게 직접 제공할 때 흥미로운 일이 발생합니다.
그리고 두 번째는, 머신 러닝, AI 전반이 매우, 매우 커질 것이라는 것을 깨달았습니다. 어떤 방향으로 나아갈지 정확히는 몰랐지만, 세대를 초월하는 무언가가 있을 것이라는 것을 알았고, 그 일부가 되고 싶었습니다. 저는 이미 블랙베리에 들어가는 칩을 만드는 그룹에 속해 있을 때 그런 경험을 했습니다. 그것은 업계의 근본적인 변화였습니다. 그 느낌은 정말 대단했습니다. 그렇게 크고 근본적인 무언가에 참여하게 되어서요. 그리고 저는 “좋아, 근본적인 무언가에 참여할 또 다른 기회가 생겼구나”라고 생각했습니다.
수직 통합 기업에서 일하려면 다른 종류의 칩 설계 엔지니어가 필요합니까?
만약에: 물론입니다. 제가 사람을 고용할 때, 면접 과정은 그런 사고방식을 가진 사람을 찾는 것입니다. 구체적인 예를 하나 들어보겠습니다. 제가 신호 무결성 엔지니어가 필요하다고 가정해 보겠습니다. (신호 무결성은 시스템의 어느 위치에 있든 A 지점에서 B 지점으로 가는 신호가 올바르게 도착하도록 합니다.) 일반적으로 신호 무결성 분석에 대한 경험이 많고 레이아웃 영향을 이해하고 실험실에서 측정할 수 있는 신호 무결성 엔지니어를 고용합니다. 글쎄요, 저희 그룹에는 이것만으로는 충분하지 않습니다. 신호 무결성 엔지니어도 코더가 되기를 원하기 때문입니다. 시스템 수준에서 실행되는 워크로드나 테스트를 수행하고 이를 수정하거나 처음부터 새로 빌드하여 워크로드에서 시스템 수준의 신호 무결성 영향을 살펴볼 수 있기를 바랍니다. 여기서 유연하게 훈련받고 작은 상자 밖에서 생각하는 것이 개발 방식과 고객에게 서비스하는 방식에 큰 도움이 되었습니다.
“우리가 실리콘을 다시 받을 때쯤이면 소프트웨어는 완성되어 있을 겁니다.”—Ali Saidi, 안나푸르나 연구소
결국, 우리의 책임은 데이터 센터에서 고객에게 직접 완전한 서버를 제공하는 것입니다. 그리고 그 관점에서 생각한다면 전체 스택에서 최적화하고 혁신할 수 있을 것입니다. 설계 엔지니어나 테스트 엔지니어는 전체 그림을 볼 수 있어야 합니다. 그것이 그들의 일이기 때문입니다. 완전한 서버를 데이터 센터에 제공하고 최적화를 가장 잘 수행할 곳을 찾아야 합니다. 트랜지스터 수준이나 기판 수준 또는 보드 수준이 아닐 수도 있습니다. 완전히 다른 것일 수도 있습니다. 순전히 소프트웨어일 수도 있습니다. 그리고 그러한 지식과 가시성을 갖추면 엔지니어가 훨씬 더 생산적으로 일하고 고객에게 훨씬 더 빠르게 제공할 수 있습니다. 다운스트림의 세 줄의 코드로 이러한 문제를 해결할 수 있는 트랜지스터를 최적화하기 위해 벽에 머리를 부딪히지는 않을 것입니다. 맞죠?
요즘 사람들이 그런 식으로 훈련을 받는다고 생각하시나요?
만약에: 우리는 최근 대학 졸업생들에게 매우 좋은 행운을 얻었습니다. 최근 대학 졸업생, 특히 지난 몇 년 동안은 정말 대단했습니다. 저는 교육 시스템이 우리가 제공하는 유형의 일자리에 관심이 있는 엔지니어와 컴퓨터 과학자를 졸업시키는 방식에 매우, 매우 만족합니다.
우리가 적합한 사람을 찾는 데 매우 성공한 또 다른 곳은 스타트업입니다. 그들은 무엇이 필요한지 알고 있습니다. 스타트업에서는 정의상 매우 다양한 일을 해야 하기 때문입니다. 이전에 스타트업을 해본 사람들은 Amazon의 문화와 사고방식을 완벽하게 이해합니다.
알리, AWS에 들어오게 된 계기는 무엇인가요?
알리 사이드한국어: AWS
알리는 이렇게 말했습니다. 저는 여기 7년 반 정도 있었습니다. AWS에 합류했을 때, 당시 비밀 프로젝트에 참여했습니다. “Arm 서버를 만들 거야. 아무에게도 말하지 마.”라는 말을 들었습니다.
우리는 Graviton 1부터 시작했습니다. Graviton 1은 다른 아키텍처로 AWS에서 동일한 경험을 제공할 수 있다는 것을 증명할 수 있는 수단이었습니다.
클라우드는 고객이 매우 낮은 비용으로, 진입 장벽이 낮은 방식으로 시도하고 “내 작업 부하에 효과가 있을까?”라고 말할 수 있는 능력을 제공했습니다. 따라서 Graviton 1은 실제로 우리가 이를 수행할 수 있다는 것을 보여주는 차량일 뿐이며, ARM 서버 주변 소프트웨어가 성장하고 더 관련성이 높아질 것이라는 신호를 세상에 보내기 시작했습니다.
2019년에 발표된 Graviton 2는 우리의 첫 번째… 범용 워크로드, 웹 서버 및 이와 유사한 유형의 작업을 타겟으로 하는 시장을 선도하는 장치라고 생각합니다.
아주 잘 해냈습니다. 저희는 데이터베이스, 웹 서버, 키-값 저장소, 많은 애플리케이션을 실행하는 사람들이 있습니다… 고객이 Graviton을 채택하면 하나의 작업 부하를 가져오고, 그 하나의 작업 부하를 가져오는 것의 이점을 알게 됩니다. 그리고 그들이 묻는 다음 질문은 “음, 몇 가지 더 많은 작업 부하를 가져오고 싶습니다. 무엇을 가져와야 할까요?”입니다. 특히 미디어 인코딩, 비디오 촬영 및 인코딩 또는 재인코딩 또는 여러 스트림으로 인코딩하는 것과 같이 효과적으로 충분히 강력하지 않은 부분이 있었습니다. 매우 수학적인 작업이며 더 많은 [single-instruction multiple data] 대역폭. 더 많은 수학을 할 수 있는 코어가 필요합니다.
우리는 또한 다음을 가능하게 하고 싶었습니다. [high-performance computing] 시장입니다. 그래서 우리는 Formula One과 같은 고객이 있는 HPC 7G라는 인스턴스 유형을 가지고 있습니다. 그들은 이 차가 어떻게 공기를 교란하고 그것이 뒤따르는 차에 어떤 영향을 미치는지에 대한 계산 유체 역학을 합니다. 그것은 단지 애플리케이션 포트폴리오를 확장하는 것입니다. 우리는 Graviton 4로 갔을 때 동일한 작업을 했는데, Graviton 4는 96개의 코어를 가지고 있고 Graviton 3은 64개입니다.
한 세대에서 다음 세대로 넘어가면서 무엇을 개선해야 할지 어떻게 알 수 있나요?
대지: 널리 대부분의 고객은 Graviton을 도입했을 때 큰 성공을 거두었습니다. 가끔 다른 마이그레이션과 같은 수준이 아닌 성과를 보기도 합니다. “이 세 개의 앱을 옮겼는데 성능이 20%나 더 좋아졌어요. 대단하죠. 하지만 이 앱을 여기로 옮겼는데 성능이 전혀 향상되지 않았어요. 왜 그럴까요?”라고 말할 수도 있습니다. 20%를 보는 건 정말 대단합니다. 하지만 저에게는 이상한 방식으로 0%가 실제로 더 흥미롭습니다. 왜냐하면 앱을 탐색하고 탐험할 무언가를 제공하기 때문입니다.
대부분의 고객은 그런 종류의 참여에 매우 열려 있습니다. 그래서 우리는 그들의 애플리케이션이 무엇인지 이해하고 그에 대한 어떤 종류의 프록시를 구축할 수 있습니다. 또는 내부 워크로드인 경우 원래 소프트웨어를 사용할 수 있습니다. 그런 다음 그것을 사용하여 루프를 닫고 차세대 Graviton이 무엇을 갖게 될지, 그리고 어떻게 더 나은 성능을 제공할 것인지에 대해 작업할 수 있습니다.
AWS에서 칩을 설계하는 것의 차이점은 무엇입니까?
대지: 칩 설계에는 많은 경쟁 최적화 지점이 있습니다. 이러한 모든 상충되는 요구 사항, 비용, 일정, 전력 소비, 크기, 사용 가능한 DRAM 기술 및 이러한 기술을 교차시킬 시점이 있습니다. 결국 시간 내에 만들 수 있는 가장 좋은 것이 무엇인지 파악하는 재미있고 다면적인 최적화 문제가 됩니다. 그리고 이를 올바르게 만들어야 합니다.
우리가 매우 잘 해낸 일 중 하나는 최초의 실리콘을 생산에 적용한 것입니다.
어떻게?
대지: 이상하게 들릴지 몰라도, 소프트웨어와 하드웨어 담당자가 실제로 대화를 나누지 않는 다른 곳을 봤습니다. Annapurna와 AWS의 하드웨어와 소프트웨어 담당자는 첫날부터 함께 일합니다. 소프트웨어 담당자는 궁극적으로 프로덕션 소프트웨어와 펌웨어가 될 소프트웨어를 작성하는 반면, 하드웨어는 하드웨어 엔지니어와 협력하여 개발됩니다. 함께 일함으로써 우리는 그 반복 루프를 닫고 있습니다. 하드웨어를 소프트웨어 엔지니어의 책상으로 가져갈 때 반복 루프는 수년이고 수년입니다. 여기서 우리는 끊임없이 반복하고 있습니다. 실리콘을 준비하기 전에 에뮬레이터에서 가상 머신을 실행합니다. 우리는 에뮬레이션을 수행하고 있습니다. [a complete system] 그리고 우리가 실행할 대부분의 소프트웨어를 실행합니다.
그래서 우리가 실리콘 백에 도달할 때까지 [from the foundry]소프트웨어가 완성되었습니다. 그리고 우리는 이 시점에서 대부분의 소프트웨어가 작동하는 것을 보았습니다. 그래서 우리는 그것이 작동할 것이라는 매우 높은 확신을 가지고 있습니다.
다른 부분은, 제 생각에, 우리가 제공할 것에 절대적으로 레이저 초점을 맞추는 것입니다. 여러분은 많은 아이디어를 얻지만, 여러분의 디자인 리소스는 대략 고정되어 있습니다. 제가 얼마나 많은 아이디어를 버킷에 넣든, 저는 그렇게 많은 사람을 고용할 수 없을 것이고, 제 예산은 아마도 고정되어 있을 것입니다. 그래서 제가 버킷에 넣는 모든 아이디어는 어떤 리소스를 사용할 것입니다. 그리고 그 기능이 프로젝트의 성공에 정말로 중요하지 않다면, 저는 나머지 프로젝트를 위험에 빠뜨리고 있습니다. 그리고 저는 그것이 사람들이 자주 저지르는 실수라고 생각합니다.
수직 통합된 상황에서는 그런 결정을 내리기가 더 쉬운가요?
대지: 물론입니다. 우리는 마더보드와 서버를 만들어 랙에 넣을 것이고, 그것이 어떤 모습일지 알고 있습니다… 그래서 우리는 필요한 기능을 알고 있습니다. 우리는 여러 시장에 진출할 수 있는 슈퍼셋 제품을 만들려고 하지 않습니다. 우리는 하나에 레이저로 집중하고 있습니다.
AWS 칩 설계 환경의 또 다른 독특한 점은 무엇입니까?
대지: AWS에 매우 흥미로운 점 중 하나는 우리가 클라우드이고 클라우드에서 이러한 칩을 개발하고 있다는 것입니다. 우리는 실제로 실행을 추진한 최초의 회사였습니다. [electronic design automation (EDA)] 클라우드에서. 우리는 모델을 “80개의 서버가 있고, EDA에 이걸 사용합니다”에서 “오늘은 80개의 서버가 있습니다. 원한다면 내일은 300개를 가질 수 있습니다. 그다음 날에는 1,000개를 가질 수 있습니다”로 변경했습니다.
사용하는 리소스를 다양하게 변경하여 시간을 단축할 수 있습니다. 프로젝트 초기에는 많은 리소스가 필요하지 않습니다. 많은 것을 꺼버리고 효과적으로 비용을 지불하지 않을 수 있습니다. 프로젝트가 끝나갈 무렵에는 이제 훨씬 더 많은 리소스가 필요합니다. 그리고 “이 기계가 하나 있고 바쁘기 때문에 이렇게 빨리 반복할 수 없습니다.”라고 말하는 대신, “글쎄요, 기계는 하나 필요 없어요. 오늘은 기계가 10개 있을 거예요.”라고 말할 수 있습니다.
이런 큰 디자인의 반복 주기가 이틀이 걸리는 대신, 하루도 걸리지 않고, 이 10대의 기계로 3~4시간으로 줄일 수 있어요. 정말 대단한 일이죠.
Amazon.com은 고객으로서 얼마나 중요한가요?
대지: 그들은 작업량이 많고, 우리도 당연히 같은 회사입니다. o 우리는 타사와는 달리 일부 워크로드에 접근할 수 있습니다. 하지만 우리는 또한 다른 외부 고객과 매우 긴밀한 관계를 맺고 있습니다.
그래서 지난 Prime Day에 우리는 2,600개의 Amazon.com 서비스가 Graviton 프로세서에서 실행 중이라고 말했습니다. 이번 Prime Day에는 그 수가 두 배 이상 증가하여 Graviton에서 실행되는 서비스가 5,800개였습니다. 그리고 Amazon의 리테일 부문은 Prime Day를 위해 리테일 웹사이트와 그 주변 서비스를 지원하기 위해 250,000개 이상의 Graviton CPU를 사용했습니다.
AI 가속기 팀은 칩부터 서버 랙까지 모든 것을 테스트하는 랩과 공동으로 위치해 있습니다. 왜 그럴까요?
만약에: 그래서 Annapurna Labs는 여러 위치에 여러 개의 연구실을 가지고 있습니다. 여기는 오스틴에 있습니다… 가장 작은 연구실 중 하나입니다. 하지만 오스틴에 있는 연구실에서 흥미로운 점은 머신 러닝 서버와 트레니엄 그리고 추론 [AWS’s AI chips] 이 층에 효과적으로 공동 배치되었습니다. 하드웨어 개발자, 엔지니어의 경우, 랩을 같은 층에 공동 배치하는 것은 매우 효과적이었습니다. 고객에게 제공하기 위한 실행 및 반복 속도가 빨라집니다. 이 랩은 칩 수준, 서버 수준, 보드 수준에서 우리가 해야 할 모든 것을 자체적으로 처리할 수 있도록 설정되어 있습니다. 다시 말하지만, 제가 우리 팀에 전달했듯이, 우리의 일은 칩이 아닙니다. 우리의 일은 보드가 아닙니다. 우리의 일은 고객에게 제공하는 전체 서버입니다.
수직 통합은 데이터 센터 규모 배포를 위한 칩을 설계하고 테스트하는 데 어떻게 도움이 되나요?
만약에: 기준을 높이는 서버를 만드는 것은 비교적 쉽습니다. 매우 고성능, 매우 저전력인 무언가 말입니다. 10개, 100개, 어쩌면 1,000개를 만든다면 쉽습니다. 이것을 골라내고, 이것을 고치고, 저것을 고칠 수 있습니다. 하지만 AWS의 규모는 훨씬 더 큽니다. 우리는 100,000개의 칩이 필요한 모델을 훈련해야 합니다. 100,000개! 그리고 훈련을 위해 5분 만에 실행되는 것이 아닙니다. 몇 시간이나 며칠, 심지어 몇 주 동안 실행됩니다. 그 100,000개의 칩은 지속 시간 동안 작동해야 합니다. 우리가 여기서 하는 모든 일은 그 지점에 도달하기 위한 것입니다.
우리는 “잘못될 수 있는 모든 것들은 무엇인가?”라는 사고방식에서 시작합니다. 그리고 우리는 우리가 아는 모든 것을 구현합니다. 하지만 클라우드 규모에 대해 이야기할 때, 항상 여러분이 생각하지 못했던 것들이 등장합니다. 이것들은 0.001퍼센트 유형의 문제입니다.
이 경우, 우리는 함대에서 먼저 디버그를 합니다. 그리고 어떤 경우에는 근본 원인을 찾기 위해 실험실에서 디버그를 해야 합니다. 그리고 즉시 수정할 수 있다면, 즉시 수정합니다. 수직 통합되어 있기 때문에 많은 경우 소프트웨어 수정을 할 수 있습니다. 우리는 민첩성을 사용하여 수정을 서두르는 동시에 차세대가 처음부터 이미 알아낸 것을 확인합니다.