산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

여러 추론 칩을 사용하려면 신중한 계획이 필요합니다

지난 2년은 추론 칩 사업에서 매우 바빴습니다. 한동안은 격주로 다른 회사에서 새롭고 더 나은 솔루션을 소개하는 것처럼 보였습니다. 이 모든 혁신이 훌륭했지만, 문제는 대부분의 기업이 어떤 솔루션이 다른 솔루션보다 더 나은 성능을 발휘하는지 알 수 없기 때문에 다양한 솔루션을 어떻게 만들어야 할지 몰랐다는 것입니다. 이 새로운 시장에서 확립된 벤치마크 세트가 없었기 때문에 추론 칩에 대해 정말 빨리 적응하거나 다양한 공급업체에서 제공한 성능 수치를 믿어야 했습니다.

대부분의 공급업체는 어떤 유형의 성능 수치를 제공했으며 일반적으로 벤치마크를 통해 보기 좋게 만들었습니다. 일부 공급업체는 모델, 배치 크기 또는 프로세스/전압/온도 조건을 지정하지 않고 TOPS 및 TOPS/와트에 대해 이야기했습니다. 다른 사람들은 대부분의 사람들이 필요로 하는 것보다 훨씬 간단한 모델인 ResNet-50 벤치마크를 사용했기 때문에 추론 옵션을 평가할 때 그 가치가 의심스럽습니다.

우리는 그 초창기부터 먼 길을 왔습니다. 기업들은 추론 칩의 성능을 측정할 때 정말 중요한 것이 1) 높은 MAC 사용률, 2) 저전력, 3) 모든 것을 작게 유지해야 한다는 사실을 천천히 알아냈습니다.

측정 방법을 알고 있습니다. 다음 단계는 무엇인가요?

이제 우리는 한 추론 칩의 성능을 다른 추론 칩에 비해 측정하는 방법에 대해 상당히 잘 알고 있으므로 동일한 설계에서 여러 추론 칩을 함께 사용할 때의 장점(또는 단점)이 무엇인지 묻고 있습니다. 간단한 대답은 추론 칩이 올바른 방식으로 설계될 때 여러 추론 칩을 사용하여 성능을 선형적으로 향상시킬 수 있다는 것입니다. 여러 추론 칩을 사용할 때 고속도로의 비유는 그리 멀지 않습니다. 회사는 1차선 고속도로 또는 4차선 고속도로의 성능을 원합니까?

분명히 모든 회사는 4차선 고속도로를 원하므로 이제 문제는 "교통체증과 병목 현상을 일으키지 않고 어떻게 이 4차선 고속도로를 제공할 수 있습니까?"가 됩니다. 정답은 올바른 추론 칩 선택에 달려 있습니다. 설명을 위해 신경망 모델을 살펴보겠습니다.

신경망은 레이어로 나뉩니다. ResNet-50과 같은 레이어에는 50개의 레이어가 있고 YOLOv3에는 100개가 넘는 레이어가 있으며 각 레이어는 이전 레이어에서 활성화를 받습니다. 따라서 레이어 N에서 출력은 레이어 N+1로 이동하는 활성화입니다. 해당 계층이 들어오기를 기다리고 계산이 완료되고 출력은 계층 n+2로 이동하는 활성화입니다. 마침내 결과를 얻을 때까지 레이어의 길이에 대해 계속됩니다. 이 예제의 초기 입력은 이미지이거나 모델에서 처리 중인 데이터 세트임을 명심하십시오.

여러 칩이 차이를 만드는 경우

현실은 특정 수준의 성능을 가진 칩이 있다면 항상 2배의 성능 또는 4배의 성능을 원하는 고객이 있다는 것입니다. 신경망 모델을 분석하면 경우에 따라 이를 달성할 수 있습니다. 2개의 칩 또는 4개의 칩으로 모델을 분할하는 방법을 살펴보기만 하면 됩니다.

이것은 수행 중인 처리를 분할하고 성능과 관련하여 빼는 것이 아니라 모두 합산하는 방법을 파악하는 것이 어려웠기 때문에 수년 동안 병렬 처리의 문제였습니다.

병렬 처리 및 범용 컴퓨팅과 달리 추론 칩의 장점은 고객이 일반적으로 두 개의 칩을 사용하려는지 여부를 미리 알고 있으므로 컴파일러가 즉시 알아낼 필요가 없다는 것입니다. 컴파일 타임에 수행됩니다. 신경망 모델을 사용하면 모든 것이 완전히 예측 가능하므로 모델을 분할하는 방법과 두 개의 칩에서 잘 실행되는지 여부를 정확히 분석하고 파악할 수 있습니다.

모델이 두 개 이상의 칩에서 실행될 수 있는지 확인하려면 활성화 크기와 MAC 수를 계층별로 살펴보는 것이 중요합니다. 일반적으로 가장 큰 활성화는 가장 초기 레이어에서 발생합니다. 즉, 레이어 수가 늘어날수록 활성화 크기가 천천히 줄어듭니다.

MAC 수와 각 주기에서 수행되는 MAC 수를 확인하는 것도 중요합니다. 대부분의 모델에서 각 주기에서 수행되는 MAC 수는 일반적으로 활성화 크기와 상관 관계가 있습니다. 두 개의 칩이 있고 최대 주파수로 실행하려면 각 칩에 동일한 작업 부하를 부여해야 하기 때문에 이것은 중요합니다. 한 칩이 모델의 대부분을 수행하고 다른 칩이 모델의 일부만 수행하는 경우 첫 번째 칩의 처리량에 의해 제한을 받게 됩니다.

두 칩 간에 모델을 분할하는 방법도 중요합니다. 워크로드의 분포를 결정하기 때문에 MAC 수를 확인해야 합니다. 또한 칩 사이에 무엇이 전달되는지 확인해야 합니다. 어느 시점에서 전달한 활성화가 가능한 한 작은 위치에서 모델을 슬라이스하여 필요한 통신 대역폭의 양과 전송 대기 시간이 최소화되도록 해야 합니다. 활성화가 매우 큰 지점에서 모델을 슬라이싱하면 활성화의 전송이 병목 현상이 되어 2칩 솔루션의 성능을 제한할 수 있습니다.

아래 차트는 YOLOv3, Winograd, 2 메가픽셀 이미지에 대해 활성화 출력 크기와 누적 Mac 작업 레이어를 레이어별로 보여줍니다(컨볼루션 레이어가 표시됨). 두 칩 간의 작업 부하 균형을 맞추기 위해 모델은 누적 MAC 작업의 약 50%로 줄어들 것입니다. 이 시점에서 한 칩에서 다른 칩으로 전달되는 활성화는 1MB 또는 2MB입니다. 4개의 칩으로 나누기 위해 컷은 약 25%, 50% 및 75%입니다. 활성화 크기는 처음에 가장 크므로 25% 컷 포인트에는 4MB 또는 8MB 활성화가 통과해야 합니다.

<중앙>

더 큰 이미지를 보려면 여기를 클릭하십시오.
YOLOv3/Winograd/2Mpixel 이미지에 대한 활성화 출력 크기(파란색 막대) 및 계층별 누적 MAC 작업(빨간색 선) , 워크로드가 여러 칩으로 분할되는 방식을 보여줍니다(이미지:Flex Logix)

성능 도구

다행히 이제 고성능 도구를 사용하여 높은 처리량을 보장할 수 있습니다. 실제로 단일 칩의 성능을 모델링하는 동일한 도구를 일반화하여 두 칩의 성능을 모델링할 수 있습니다. 주어진 계층의 성능은 정확히 동일하지만 문제는 데이터 전송이 성능에 미치는 영향입니다. 필요한 대역폭이 충분하지 않은 경우 해당 대역폭이 처리량을 제한하기 때문에 모델링 도구는 이를 고려해야 합니다.

4개의 칩을 수행하는 경우 모델의 1/4분기의 활성화가 모델의 후반 부분의 활성화보다 큰 경향이 있기 때문에 더 큰 대역폭이 필요합니다. 따라서 투자하는 통신 리소스의 양은 함께 파이프라인된 더 많은 수의 칩으로 이동할 수 있게 하지만 모든 칩이 독립 실행형 칩일지라도 부담해야 하는 오버헤드 비용이 됩니다.

결론

여러 추론 칩을 사용하면 성능이 크게 향상될 수 있지만 위에서 설명한 대로 신경망이 올바르게 설계된 경우에만 가능합니다. 고속도로의 비유를 되돌아보면 잘못된 칩과 잘못된 신경망 모델을 사용하여 트래픽이 쌓이게 할 기회가 많이 있습니다. 올바른 칩으로 시작했다면 올바른 방향으로 가고 있는 것입니다. TOPS나 Res-Net50 벤치마크가 아니라 처리량이 가장 중요하다는 것을 기억하십시오. 그런 다음 올바른 추론 칩을 선택하면 애플리케이션 요구 사항에 맞는 최대 성능을 제공하는 동등하게 강력한 신경망 모델을 설계할 수 있습니다.

— Geoff Tate는 Flex Logix의 CEO입니다.


임베디드

  1. SaaS 및 클라우드를 사용하려면 신중한 데이터 랭글링이 필요합니다
  2. C# 사용
  3. RISC-V International과 CHIPS Alliance가 OmniXtend에서 협력
  4. 여러 바이오센서를 통합하는 작은 모듈
  5. PCB 디자인 패키지를 클라우드로 가져옴
  6. 시뮬레이션된 도시 환경에서 여러 상황에서 자율 주행 자동차를 위한 실시간 모션 계획
  7. 디지털 작업 현장 이니셔티브는 신중한 계획의 이점
  8. AI는 컴퓨터 칩이 코드를 실행하는 속도를 예측합니다
  9. 단일 소스를 사용하여 여러 웨어러블 장치에 무선으로 전원 공급
  10. 정보 모델을 사용하여 OPC UA 클라이언트에서 기능 블록을 호출하는 방법