Làm thế nào để sử dụng ASIC để tăng tốc AI hoạt động?


9

Chúng ta có thể đọc trên trang Wikipedia rằng Google đã xây dựng một con chip ASIC tùy chỉnh cho máy học và được thiết kế riêng cho TensorFlow giúp tăng tốc AI.

Vì các chip ASIC được tùy chỉnh đặc biệt cho một mục đích sử dụng cụ thể mà không có khả năng thay đổi mạch của nó, nên phải có một số thuật toán cố định được gọi.

Vậy chính xác thì khả năng tăng tốc của AI sử dụng chip ASIC hoạt động như thế nào nếu thuật toán của nó không thể thay đổi? Phần nào của nó đang tăng tốc chính xác?


1
Không có kỹ thuật AI chính thống nào mà tôi biết cần phải sửa đổi thuật toán , mặc dù hầu hết phụ thuộc vào khả năng sửa đổi dữ liệu (cường độ kết nối, thành viên dân số), v.v.
NietzscheanAI

Vì vậy, phần động duy nhất như trạng thái của mạng được giữ trên một số bộ nhớ flash hoặc ổ đĩa?
kenorb

Theo en.wikipedia.org/wiki/Application-specific_integrated_circuit , ASIC hiện đại có thể có RAM ...
NietzscheanAI

Câu trả lời:


4

Thao tác kéo

Công việc chính trong hầu hết các ứng dụng ML chỉ đơn giản là một tập hợp các hoạt động tenor (rất lớn), ví dụ nhân ma trận. Bạn có thể làm điều đó một cách dễ dàng trong ASIC và tất cả các thuật toán khác chỉ có thể chạy trên đó.


1
Một điểm quan trọng là TPU sử dụng phép nhân 8 bit, có thể được thực hiện hiệu quả hơn nhiều so với phép nhân rộng hơn được cung cấp bởi CPU. Độ chính xác thấp như vậy là đủ và cho phép đóng gói hàng ngàn số nhân như vậy trên một chip.
maaartinus

3

Tôi nghĩ rằng thuật toán đã thay đổi tối thiểu, nhưng phần cứng cần thiết đã được cắt xén đến tận xương.

Số lượng chuyển đổi cổng được giảm (có thể là float ops và độ chính xác quá), cũng như số lượng các hoạt động di chuyển dữ liệu, do đó tiết kiệm cả năng lượng và thời gian chạy. Google đề nghị TPU của họ đạt được mức tiết kiệm chi phí gấp 10 lần để hoàn thành công việc tương tự.

https: //cloudpl platform.googleblog.com/2016/05/Google-superchargees-machine-learning-t task-with-custom-chip.html


1

ASIC - Nó là viết tắt của IC cụ thể ứng dụng. Về cơ bản, bạn viết chương trình để thiết kế chip trong HDL . Tôi sẽ xem xét cách các máy tính hiện đại hoạt động để giải thích quan điểm của tôi:

  • CPU - CPU về cơ bản là một bộ vi xử lý với nhiều IC trợ giúp thực hiện các tác vụ cụ thể. Trong một bộ vi xử lý chỉ có một đơn vị Xử lý số học duy nhất (thuật ngữ tạo thành) được gọi là Accumulator trong đó một giá trị phải được lưu trữ, vì việc tính toán chỉ được thực hiện và chỉ các giá trị được lưu trữ trong bộ tích lũy. Do đó, mọi hướng dẫn, mọi thao tác, mọi thao tác R / W đều phải được thực hiện thông qua bộ tích lũy (đó là lý do tại sao các máy tính cũ được sử dụng để đóng băng khi bạn ghi từ tệp vào một thiết bị nào đó, mặc dù ngày nay quy trình đã được tinh chỉnh và có thể không cần bộ tích lũy đến giữa DMA cụ thể). Bây giờ trong các thuật toán ML, bạn cần thực hiện các phép nhân ma trận có thể dễ dàng song song, nhưng chúng ta có một đơn vị xử lý duy nhất và do đó đã xuất hiện GPU.
  • GPU - GPU có 100 đơn vị xử lý nhưng chúng thiếu các tiện ích đa năng của CPU. Vì vậy, chúng là tốt cho tính toán song song. Vì không có bộ nhớ chồng chéo (cùng một phần của bộ nhớ bị thao túng bởi 2 quy trình) trong đa ứng dụng ma trận, GPU sẽ hoạt động rất tốt. Mặc dù GPU không đa chức năng, nó sẽ chỉ hoạt động nhanh như CPU ​​cung cấp dữ liệu vào bộ nhớ của nó.
  • ASIC - ASIC có thể là bất cứ thứ gì GPU, CPU hoặc bộ xử lý theo thiết kế của bạn, với bất kỳ dung lượng bộ nhớ nào bạn muốn cung cấp cho nó. Giả sử bạn muốn thiết kế bộ xử lý ML chuyên dụng của riêng mình, thiết kế bộ xử lý trên ASIC. Bạn muốn số FP 256 bit? Tạo bộ xử lý 256 bit. Bạn muốn tổng kết của bạn được nhanh chóng? Triển khai bộ cộng song song lên đến số bit cao hơn bộ xử lý thông thường? Bạn muốnnsố lõi? Không vấn đề gì. Bạn muốn xác định luồng dữ liệu từ các đơn vị xử lý khác nhau đến các địa điểm khác nhau? Bạn có thể làm được. Ngoài ra với kế hoạch cẩn thận, bạn có thể có được sự đánh đổi giữa khu vực ASIC với sức mạnh và tốc độ. Vấn đề duy nhất là đối với tất cả những điều này bạn cần tạo ra các tiêu chuẩn của riêng bạn. Nói chung, một số tiêu chuẩn được xác định rõ ràng được tuân theo trong việc thiết kế bộ xử lý, như số lượng chân và chức năng của chúng, tiêu chuẩn IEEE 754 cho biểu diễn dấu phẩy động, v.v. đã được đưa ra sau nhiều thử nghiệm và lỗi. Vì vậy, nếu bạn có thể vượt qua tất cả những điều này, bạn có thể dễ dàng tạo ASIC của riêng mình.

Tôi không biết google đang làm gì với TPU của họ nhưng rõ ràng họ đã thiết kế một số loại Integer và tiêu chuẩn FP cho lõi 8 bit của họ tùy thuộc vào yêu cầu trong tay. Họ có thể đang thực hiện nó trên ASIC cho các cân nhắc về sức mạnh, diện tích và tốc độ.


0

Độ chính xác thấp cho phép tính toán song song cao trong các lớp Convo và FC. Kiến trúc cố định CPU & GPU, nhưng ASIC / FPGA có thể được thiết kế dựa trên kiến ​​trúc mạng thần kinh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.