Chủ Đề Domain-Specific Architecture Ứng Dụng Trong Kiến Trúc Của Mạng Neuron Học Sâu Google’s Tensor Processing Unit.pdf

20 0 0
Tài liệu đã được kiểm tra trùng lặp
Chủ Đề Domain-Specific Architecture Ứng Dụng Trong Kiến Trúc Của Mạng Neuron Học Sâu Google’s Tensor Processing Unit.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Ứng dụng trong kiến trúc của mạng neuron học sâu

Google’s Tensor Processing Unit

Sinh viên thực hiện : Trần Quang Duy

Trang 2

Mục lục

2.1 Các nguyên tắc về Domain-specific Architecture 6

2.2 TPU - một kiến trúc của mạng neuron học sâu 8

2.2.1 Tổng quan về mạng neuron học sâu 8

2.2.2 Nguồn gốc của TPU 9

2.2.3 Kiến trúc của TPU 9

2.2.4 Kiến trúc tập lệnh của TPU 9

2.2.5 Vi kiến trúc của TPU 10

2.2.6 Triển khai TPU 11

6.2 Phụ lục về TPU và cách TPU tuân theo các nguyên tắc 18

2

Trang 3

Danh sách hình vẽ

1 Thời gian trước khi công nghệ mới của Intel trong quá trình sản xuất bán dẫn

được đo lường bằng đơn vị nm 4

2 Chi phí năng lượng trong picoJoules cho một quy trình 90 nm để truy xuất chỉ thị hoặc truy cập bộ nhớ cache dữ liệu so với chi phí năng lượng của các phép tính số học (Qadeer et al., 2015) 5

3 4 DSAs và mức độ tuân thủ của chúng đối với năm nguyên tắc chỉ đạo 7

4 Sơ đồ khối của TPU 10

5 Ví dụ về mảng tuần hoàn đang hoạt động 12

6 Systolic data flow của Đơn vị Nhân Ma trận 13

7 Bản vẽ cấu trúc mặt phẳng của TPU 13

8 Bảng mạch in của TPU 14

9 Hiệu suất khi các chỉ số tăng từ 0,25 đến 4 lần: băng thông bộ nhớ, tần số clock + bộ cộng dồn, tần số clock, kích thước đơn vị ma trận + bộ cộng dồn, và một chiều của đơn vị ma trận vuông 16

Bảng diễn giải các thuật ngữ viết tắt

3

Trang 4

1 Giới thiệu

"Moore’s Law can’t continue forever We have another 10 to 20 years before we reach a fundamental limit"

Gordon Moore không chỉ dự đoán sự tăng trưởng đáng kinh ngạc của transistor trên mỗi chip vào năm 1965, mà trích dẫn ở ngay đầu bài tiểu luận cũng cho thấy ông cũng dự đoán sự suy giảm của nó sau 50 năm Như một bằng chứng, Hình 1 cho thấy rằng ngay cả công ty mà ông sáng lập - một công ty đã tự hào sử dụng Định luật Moore như một hướng dẫn cho đầu tư vốn suốt nhiều thập kỷ - đang giảm tốc độ phát triển của các quy trình bán dẫn mới.

Trong thời kỳ bùng nổ bán dẫn, các kiến trúc sư đã sử dụng Định luật Moore để tạo ra các cơ chế mới có thể biến nguồn lực lớn về transistor thành hiệu suất cao hơn Tài nguyên cho một bộ xử lý RISC 32-bit với đường ống 5 giai đoạn - cần chỉ khoảng 25.000 transistor vào những năm 1980 - đã tăng lên đến 100.000 lần để cho phép các tính năng gia tốc mã nguồn tổng quát trên các bộ xử lý tổng quát, như các chương trình trước đó đã ghi chép:

• 1st-level, 2nd-level, 3rd-level, and even 4th-level caches (các bộ nhớ cache) • 512-bit SIMD floating-point units (đơn vị tính toán động SIMD 512 bit) • 15+ stage pipelines (đường ống có 15 giai đoạn trở lên)

• Branch prediction (dự đoán nhánh/dự đoán nhảy) • Out-of-order execution (Thực thi ngoài thứ tự) • Speculative prefetching (đặt trước theo giả thuyết) • Multithreading (đa luồng)

• Multiprocessing (đa xử lý)

Hình 1: Thời gian trước khi công nghệ mới của Intel trong quá trình sản xuất bán dẫn được đo lường bằng đơn vị nm.

Những kiến trúc phức tạp này nhắm đến các chương trình có hàng triệu dòng mã viết bằng các ngôn ngữ hiệu quả như C++ Các kiến trúc sư xử lý mã nguồn như những hộp đen, thường không hiểu rõ cấu trúc bên trong của các chương trình hoặc thậm chí là mục tiêu mà chúng

4

Trang 5

đang cố gắng thực hiện Các chương trình đo đạc hiệu suất như những trong bộ SPEC2017 chỉ là công cụ để đo lường và tăng tốc Những người viết trình biên dịch là những người ở giao diện phần cứng-phần mềm, mà xuất hiện từ cuộc cách mạng RISC vào những năm 1980, nhưng họ có kiến thức hạn chế về hành vi ứng dụng ở mức độ cao; đó là lý do tại sao trình biên dịch không thể vượt qua khoảng cách ngữ nghĩa giữa C hoặc C++ và kiến trúc của GPU.

Sự giảm tỉ lệ theo Dennard kết thúc sớm hơn rất nhiều so với Định luật Moore Do đó, việc có nhiều transistor chuyển đổi hiện tại đồng nghĩa với việc tiêu tốn nhiều năng lượng hơn Ngân sách năng lượng không tăng, và chúng ta đã thay thế bộ xử lý không hiệu quả đơn lẻ bằng nhiều lõi hiệu quả Do đó, chúng ta không còn cách gì để tiếp tục cải thiện đáng kể về hiệu suất chi phí và hiệu suất năng lượng cho các kiến trúc tổng quát Bởi vì ngân sách năng lượng bị hạn chế (do di truyền điện, giới hạn cơ khí và nhiệt của chip), nếu chúng ta muốn hiệu suất cao hơn (số phép tính/giây cao hơn), chúng ta cần giảm năng lượng cho mỗi phép tính.

Hình 2 là một góc nhìn khác về chi phí năng lượng tương đối của bộ nhớ và logic, tức là tính là phần chi phí phụ trợ cho một lệnh số học Với chi phí phụ trợ này, việc điều chỉnh nhẹ vào các lõi hiện có có thể mang lại cải tiến khoảng 10%, nhưng nếu chúng ta muốn cải thiện theo độ lớn trong khi vẫn cung cấp khả năng lập trình, chúng ta cần tăng số lượng phép tính số học mỗi lệnh từ một lên hàng trăm Để đạt được mức hiệu suất đó, chúng ta cần một thay đổi mạnh mẽ trong kiến trúc máy tính từ các lõi tổng quát sang các kiến trúc đặc thù vùng (DSAs).

Hình 2: Chi phí năng lượng trong picoJoules cho một quy trình 90 nm để truy xuất chỉ thị hoặc truy cập bộ nhớ cache dữ liệu so với chi phí năng lượng của các phép tính số học (Qadeer et al., 2015).

Do đó, giống như lĩnh vực đã chuyển từ uniprocessors sang multiprocessors trong thập kỷ trước vì sự cần thiết, cảm giác tuyệt vọng là lý do mà kiến trúc sư đang làm việc trên DSAs Tình trạng mới là máy tính sẽ bao gồm các bộ xử lý tiêu chuẩn để chạy các chương trình lớn thông thường như hệ điều hành cùng với các bộ xử lý đặc thù vùng chỉ thực hiện một loạt công việc hẹp, nhưng chúng thực hiện chúng một cách rất tốt Do đó, máy tính như vậy sẽ đa dạng hóa nhiều hơn so với các chip đa lõi đồng nhất của quá khứ.

Một phần của lập luận là những đổi mới trong kiến trúc từ vài thập kỷ qua đã tận dụng Định luật Moore (bộ nhớ cache, thực thi không tuần tự, v.v.) có thể không phù hợp với một số lĩnh vực - đặc biệt là về việc sử dụng năng lượng - do đó, tài nguyên của chúng có thể được tái sử dụng để làm cho chip phù hợp hơn với lĩnh vực đó Ví dụ, bộ nhớ cache rất tốt cho các kiến trúc tổng quát, nhưng không nhất thiết phù hợp cho DSAs; đối với các ứng dụng có mẫu truy cập bộ nhớ dễ dự đoán hoặc có tập dữ liệu lớn như video mà ít được tái sử dụng dữ liệu, bộ nhớ cache đa cấp là quá mức, lãng phí diện tích và năng lượng mà có thể được sử dụng tốt hơn Do đó, lời hứa của DSAs không chỉ là hiệu suất silic điều chỉnh mà còn là hiệu suất năng lượng tốt hơn, với đặc tính sau thường là quan trọng hơn hôm nay.

Có lẽ kiến trúc sư sẽ không tạo ra một DSA cho một chương trình C++ lớn như một trình biên dịch được tìm thấy trong bài kiểm tra SPEC2017 Thuật toán cụ thể cho một số nhân tính toán nhỏ hầu như luôn dành cho các kernel tính toán lớn hơn, như nhận diện đối tượng

5

Trang 6

hoặc hiểu ngôn ngữ nói chẳng hạn DSAs nên tập trung vào phần con và không dự định chạy toàn bộ chương trình Ngoài ra, việc thay đổi mã của bài kiểm tra không còn là việc phá vỡ quy tắc; đó là một nguồn tăng tốc hoàn toàn hợp lệ cho DSAs Do đó, nếu họ muốn đóng góp hữu ích, các kiến trúc sư quan tâm đến DSA bây giờ phải loại bỏ những giới hạn của họ và học về lĩnh vực ứng dụng và thuật toán.

Ngoài việc cần mở rộng lĩnh vực chuyên môn của họ, một thách thức đối với kiến trúc sư cụ thể cho lĩnh vực là tìm mục tiêu có nhu cầu đủ lớn để chứng minh việc phân bổ silic dành riêng cho một SOC hoặc thậm chí là một chip tùy chỉnh Chi phí kỹ thuật không lặp lại (NRE) của một chip tùy chỉnh và phần mềm hỗ trợ được phân bổ qua số lượng chip được sản xuất, do đó khó có thể có ý nghĩa kinh tế nếu bạn chỉ cần 1000 chip.

Một cách để phục vụ các ứng dụng có quy mô nhỏ hơn là sử dụng chip có thể cấu hình lại như FPGAs vì chúng có chi phí NRE thấp hơn so với chip tùy chỉnh và vì nhiều ứng dụng khác nhau có thể tái sử dụng cùng phần cứng có thể cấu hình lại để phân bổ chi phí của nó Tuy nhiên, vì phần cứng này ít hiệu quả hơn so với chip tùy chỉnh, những lợi ích từ FPGAs thường nhỏ hơn.

Một thách thức khác của DSA là làm thế nào để di chuyển phần mềm đến đó Môi trường lập trình quen thuộc như ngôn ngữ lập trình C++ và trình biên dịch hiếm khi là công cụ phù hợp cho một DSA.

Phần còn lại của giới thiệu cung cấp năm nguyên tắc cho việc thiết kế DSAs và sau đó là một hướng dẫn cho ví dụ lĩnh vực của chúng tôi, đó là mạng nơ-ron sâu (DNNs) Chúng tôi chọn DNNs vì chúng đang cách mạng hóa nhiều lĩnh vực tính toán hiện nay Khác với một số mục tiêu phần cứng, DNNs có thể áp dụng cho một loạt các vấn đề, vì vậy chúng ta có thể tái sử dụng một kiến trúc cụ thể cho DNNs cho các giải pháp trong lĩnh vực giọng nói, thị giác, ngôn ngữ, dịch thuật, xếp hạng tìm kiếm và nhiều lĩnh vực khác.

Tiếp tục với bốn ví dụ về DSAs: hai chip tùy chỉnh cho trung tâm dữ liệu giúp tăng tốc DNNs, một FPGA cho trung tâm dữ liệu tăng tốc nhiều lĩnh vực khác nhau, và một đơn vị xử lý hình ảnh được thiết kế cho các thiết bị di động cá nhân (PMDs) Sau đó, chúng tôi so sánh hiệu suất chi phí của các DSAs cùng với CPUs và GPUs bằng cách sử dụng các tiêu chuẩn DNN, và kết luận với việc dự đoán về sự phục hồi mạnh mẽ sắp tới của kiến trúc máy tính.

2 Phương pháp

2.1 Các nguyên tắc về Domain-specific Architecture

Năm nguyên tắc đã hướng dẫn chung cho việc thiết kế 4 DSAs sẽ được đề chi tiết trong phần sau Không chỉ những nguyên tắc này dẫn đến hiệu quả diện tích và năng lượng tăng cao, mà chúng cũng mang lại hai hiệu ứng phụ giá trị Đầu tiên, chúng dẫn đến các thiết kế đơn giản hơn, giảm chi phí NRE của DSAs Thứ hai, đối với các ứng dụng phục vụ người dùng thường xuyên với DSAs, các bộ gia tốc tuân theo những nguyên tắc này phù hợp hơn với các hạn chế thời gian đáp ứng ở phần trăm 99 so với việc tối ưu hóa hiệu suất biến đổi theo thời gian của các bộ xử lý truyền thống Hình 3 thể hiện cách bốn DSAs tuân theo những nguyên tắc này.

• Sử dụng bộ nhớ dành riêng để giảm thiểu khoảng cách di chuyển dữ liệu Các mức độ cache trong vi xử lý tổng quát sử dụng rất nhiều diện tích và năng lượng để di chuyển dữ liệu một cách tối ưu cho chương trình Ví dụ, một bộ nhớ cache hai chiều sử dụng 2,5 lần năng lượng so với một bộ nhớ scratchpad có thể được kiểm soát bằng phần mềm và tương đương Theo định nghĩa, các nhà viết trình biên dịch và lập trình viên của DSAs hiểu về lĩnh vực của họ, vì vậy không cần phần cứng cố gắng di chuyển dữ liệu cho họ.

6

Trang 7

Hình 3: 4 DSAs và mức độ tuân thủ của chúng đối với năm nguyên tắc chỉ đạo Thay vào đó, việc di chuyển dữ liệu được giảm bằng các bộ nhớ được kiểm soát bởi phần mềm, được dành riêng và được tinh chỉnh cho các chức năng cụ thể trong lĩnh vực • Đầu tư tài nguyên tiết kiệm từ việc loại bỏ các tối ưu hóa kiến trúc vi mạch tiên tiến

vào các đơn vị tính toán hơn hoặc bộ nhớ lớn hơn Các kiến trúc sư đã biến lợi nhuận từ Định luật Moore thành các tối ưu hóa tài nguyên cho CPUs và GPUs (thực thi không tuần tự, đa luồng, đa xử lý, prefetching, gộp địa chỉ, v.v.) Với sự hiểu biết vượt trội về thực thi của các chương trình trong những lĩnh vực hẹp hơn này, việc sử dụng tài nguyên này cho nhiều đơn vị xử lý hơn hoặc bộ nhớ trên chip lớn hơn là một quyết định tốt hơn • Hãy sử dụng hình thức song song dễ nhất phù hợp với lĩnh vực đang xét Các lĩnh vực mục tiêu cho DSAs hầu như luôn có sẵn tính song song bẩm sinh Quyết định quan trọng cho một DSA là cách tận dụng tính song song đó và cách tiết lộ nó ra cho phần mềm Thiết kế DSA dựa trên đơn vị song song tự nhiên của lĩnh vực và đơn giản hóa việc tiết lộ tính song song đó trong mô hình lập trình Ví dụ, đối với tính song song ở mức dữ liệu, nếu SIMD hoạt động trong lĩnh vực, đó chắc chắn là dễ dàng hơn cho người lập trình và người viết trình biên dịch so với MIMD Tương tự, nếu VLIW có thể biểu thị tính song song ở mức lệnh cho lĩnh vực, thiết kế có thể nhỏ gọn hơn và tiết kiệm năng lượng hơn so với thực thi không tuần tự.

• Giảm kích thước và loại dữ liệu xuống mức đơn giản nhất cần thiết cho lĩnh vực Như chúng ta sẽ thấy, các ứng dụng trong nhiều lĩnh vực thường có hạn chế bộ nhớ, vì vậy bạn có thể tăng băng thông bộ nhớ hiệu quả và sử dụng bộ nhớ trên chip bằng cách sử dụng các loại dữ liệu hẹp hơn Dữ liệu hẹp hơn và đơn giản cũng cho phép bạn đóng gói nhiều đơn vị tính toán hơn vào cùng diện tích chip.

• Sử dụng ngôn ngữ lập trình cụ thể cho lĩnh vực để chuyển mã sang DSA Như phần trước đã đề cập, một thách thức kinh điển cho DSAs là làm sao để các ứng dụng chạy trên kiến trúc mới của bạn Một sự hiểu lầm lâu dài là cho rằng máy tính mới của bạn quá hấp dẫn nên người lập trình sẽ viết lại mã của họ chỉ để phù hợp với phần cứng của bạn May mắn thay, ngôn ngữ lập trình cụ thể cho từng lĩnh vực đã trở nên phổ biến ngay cả trước khi các kiến trúc sư buộc phải chuyển sự chú ý của họ vào DSAs Ví dụ là Halide cho xử lý hình ảnh và TensorFlow cho DNNs (Ragan-Kelley et al., 2013; Abadi et al., 2016) Các ngôn ngữ như vậy làm cho việc chuyển ứng dụng sang DSA của bạn trở nên khả thi hơn nhiều Như đã đề cập trước đó, chỉ một phần nhỏ, tính toán tập trung cao của ứng dụng cần chạy trên DSA trong một số lĩnh vực, điều này cũng đơn giản hóa việc chuyển đổi.

7

Trang 8

DSAs đưa ra nhiều thuật ngữ mới, chủ yếu từ các lĩnh vực mới nhưng cũng từ các cơ chế kiến trúc mới không thấy trong các bộ xử lý thông thường Hình 4 liệt kê các từ viết tắt mới, thuật ngữ và giải thích ngắn gọn để hỗ trợ người đọc.

2.2 TPU - một kiến trúc của mạng neuron học sâu 2.2.1 Tổng quan về mạng neuron học sâu

Artificial intelligence (AI) is not only the next big wave in computing—it’s the next major turning point in human history the Intelligence Revolution will be driven by data, neural networks and computing power Intel is committed to AI [thus] we’ve added a set of leading-edge accelerants required for the growth and widespread adoption of AI.

Brian Krzanich, Intel CEO.

Trí tuệ nhân tạo (AI) đã trở lại mạnh mẽ kể từ đầu thế kỷ này Thay vì xây dựng trí tuệ nhân tạo dưới dạng một tập hợp lớn các quy tắc logic, sự chú ý chuyển sang học máy từ dữ liệu mẫu là con đường tới trí tuệ nhân tạo Số lượng dữ liệu cần thiết để học được nhiều hơn rất nhiều so với những gì đã nghĩ Các máy tính quy mô lớn (WSCs) của thế kỷ này, thu thập và lưu trữ peta-byte thông tin được tìm thấy trên Internet từ hàng tỉ người dùng và điện thoại thông minh của họ, cung cấp dữ liệu dồi dào Chúng ta cũng đã đánh giá thấp lượng tính toán cần thiết để học từ dữ liệu khổng lồ, nhưng GPU có hiệu suất chi phí tốt cho số thực đơn -được tích hợp trong hàng nghìn máy chủ của WSCs cung cấp đủ sức mạnh tính toán.

Một phần của học máy, được gọi là DNNs, đã là ngôi sao của AI trong 5 năm qua Các bước đột phá của DNNs được thấy trong việc dịch ngôn ngữ, mà DNNs cải thiện nhiều hơn chỉ trong một bước nhảy so với tất cả những tiến bộ từ thập kỷ trước (Tung, 2016; Lewis-Kraus, 2016); việc chuyển sang DNNs trong 5 năm qua đã giảm tỷ lệ lỗi trong một cuộc thi nhận dạng hình ảnh từ 26% xuống còn 3.5% (Krizhevsky et al., 2012; Szegedy et al., 2015; He et al., 2016); và vào năm 2016, DNNs đã cho phép một chương trình máy tính lần đầu tiên đánh bại một nhà vô địch Go (Silver et al., 2016) Mặc dù nhiều trong số này chạy trên đám mây, chúng cũng đã cho phép Google Translate trên điện thoại thông minh Vào năm 2017, kết quả DNN mới và quan trọng xuất hiện gần như mỗi tuần.

DSA (Domain-Specific Architecture) là một kiến trúc được tối ưu hóa cho một lĩnh vực cụ thể hoặc một loại công việc nhất định Trong trường hợp của mạng nơ-ron sâu (DNNs - Deep Neural Networks), có một số kiến trúc DSA được phát triển để tối ưu hóa việc thực hiện các phép tính trong các mạng nơ-ron sâu: TPU (Tensor Processing Unit) , ASICs (Application-Specific Integrated Circuits) , FPGA (Field-Programmable Gate Array) , GPU (Graphics Processing Unit)

Đơn vị xử lý Tensor (TPU) là vi mạch tùy chỉnh ASIC đầu tiên của Google dành cho Trung tâm Truy cập Dịch vụ Web (WSCs) Lĩnh vực ứng dụng của nó là giai đoạn suy luận trong mạng nơ-ron sâu (DNNs), và nó được lập trình bằng framework TensorFlow, được thiết kế đặc biệt cho DNNs TPU đầu tiên đã được triển khai trong các trung tâm dữ liệu của Google vào năm 2015.

Trái tim của TPU là một đơn vị nhân ma trận ALU 8 bit có kích thước 65,536 (256x256) và một bộ nhớ trên chip được quản lý phần mềm có dung lượng lớn Mô hình thực thi đơn luồng, xác định của TPU phù hợp với yêu cầu thời gian phản hồi 99 phần trăm của ứng dụng suy luận DNNs điển hình.

Dưới đây là phần nội dung chi tiết về kiến trúc đơn vị xử lý Tensor của Google, một Trình tăng tốc Trung tâm Dữ liệu Suy Luận

8

Trang 9

2.2.2 Nguồn gốc của TPU

Bắt đầu từ năm 2006, các kỹ sư của Google đã có cuộc thảo luận về việc triển khai GPU, FPGA hoặc ASIC tùy chỉnh trong các trung tâm dữ liệu của họ Họ kết luận rằng ít ứng dụng có thể chạy trên phần cứng đặc biệt và có thể được thực hiện một cách ảo dụng miễn phí bằng cách sử dụng khả năng thừa thải của các trung tâm dữ liệu lớn, và khó có thể cải thiện được điều miễn phí.

Cuộc trò chuyện thay đổi vào năm 2013 khi dự đoán rằng nếu mọi người sử dụng tìm kiếm bằng giọng nói trong ba phút mỗi ngày bằng các mạng nơ-ron sâu nhận dạng giọng nói, đòi hỏi các trung tâm dữ liệu của Google phải tăng gấp đôi để đáp ứng yêu cầu về tính toán Điều này sẽ rất đắt đỏ để thỏa mãn bằng CPU thông thường Google sau đó bắt đầu một dự án ưu tiên cao để nhanh chóng sản xuất một ASIC tùy chỉnh cho suy luận (và mua GPU sẵn có để huấn luyện) Mục tiêu là cải thiện hiệu suất chi phí lên gấp 10 lần so với GPU Dựa trên chỉ thị này, TPU được thiết kế, xác minh (Steinberg, 2015), xây dựng và triển khai trong các trung tâm dữ liệu chỉ trong 15 tháng.

2.2.3 Kiến trúc của TPU

Để giảm khả năng trì hoãn triển khai, TPU được thiết kế để làm bộ xử lý phụ trên bus I/O PCIe, cho phép nó được cắm vào các máy chủ hiện có Hơn nữa, để đơn giản hóa thiết kế phần cứng và gỡ lỗi, máy chủ chủ gửi các chỉ thị qua bus PCIe trực tiếp đến TPU để thực hiện, thay vì để TPU đi lấy các chỉ thị Do đó, TPU gần hơn với một bộ xử lý phụ FPU (floating-point unit) hơn là một GPU, mà lấy các chỉ thị từ bộ nhớ của nó.

Hình 4 cho thấy sơ đồ khối của TPU CPU máy chủ gửi các chỉ thị TPU qua bus PCIe vào một bộ đệm chỉ thị Các khối bên trong thường được kết nối với nhau thông qua đường kích thước 256 byte (2048 bit) Bắt đầu từ góc phải trên, Đơn vị Nhân Ma Trận là trái tim của TPU Nó chứa 256 ALU (Arithmetic Logic Unit) có thể thực hiện phép nhân và cộng 8 bit trên số nguyên có dấu hoặc không dấu Kết quả 16 bit được thu thập trong 4 MiB của Bộ Cộng dưới đơn vị ma trận Khi sử dụng một kết hợp giữa trọng số 8 bit và hoạt động 16 bit (hoặc ngược lại), Đơn vị Ma Trận tính toán ở nửa tốc độ, và nó tính toán ở tốc độ một phần tư khi cả hai đều là 16 bit Nó đọc và viết 256 giá trị mỗi chu kỳ clock và có thể thực hiện hoặc một phép nhân ma trận hoặc một phép tích chập Các hàm phi tuyến được tính toán bởi phần cứng Activation Trong hình 4, phần tính toán chính là Đơn vị Nhân Ma Trận được tô màu nhạt ở góc trên bên phải Đầu vào của nó là Đệm Trọng số và Đệm Thống nhất, được tô màu trung bình, và đầu ra là Bộ Cộng, cũng được tô màu trung bình Đơn vị Kích hoạt tô màu nhạt thực hiện các hàm phi tuyến trên Bộ Cộng, sau đó được chuyển đến Đệm Thống nhất.

Các trọng số cho đơn vị ma trận được tải thông qua một bộ nhớ đệm Trọng số trên chip đọc từ DRAM ngoại vi 8 GiB gọi là Bộ Nhớ Trọng số (đối với suy luận, trọng số chỉ đọc; 8 GiB hỗ trợ nhiều mô hình đồng thời hoạt động) Các kết quả trung gian được lưu giữ trong bộ đệm thống nhất 24 MiB trên chip, có thể làm đầu vào cho Đơn vị Nhân Ma Trận Một bộ điều khiển DMA có thể lập trình chuyển dữ liệu tới hoặc từ bộ nhớ CPU Máy chủ và Bộ đệm Thống nhất.

2.2.4 Kiến trúc tập lệnh của TPU

Vì chỉ thị được gửi qua bus PCIe tương đối chậm, các chỉ thị của TPU tuân theo truyền thống CISC, bao gồm một trường lặp TPU không có bộ đếm chương trình và không có chỉ thị nhánh; các chỉ thị được gửi từ CPU máy chủ Số chu kỳ đồng hồ trên mỗi chỉ thị (CPI) của các chỉ thị CISC này thường là 10-20 Tổng cộng có khoảng một tá chỉ thị, nhưng có năm chỉ thị chính sau:

• Read_Host_Memory đọc dữ liệu từ bộ nhớ CPU máy chủ vào Bộ đệm Thống nhất 9

Trang 10

Hình 4: Sơ đồ khối của TPU

• Read_Weights đọc trọng số từ Bộ Nhớ Trọng số vào FIFO Trọng số làm đầu vào cho Đơn vị Ma Trận.

• MatrixMultiply/Convolve khiến Đơn vị Nhân Ma Trận thực hiện một phép nhân ma trận-ma trận, nhân vector-ma trận, nhân ma trận theo phần tử, nhân vector theo phần tử, hoặc một phép tích chập từ Bộ đệm Thống nhất vào Bộ Cộng Một phép tính ma trận lấy đầu vào kích thước B256 có thể thay đổi, nhân nó với đầu vào không đổi 256256 và tạo ra đầu ra kích thước B*256, mất B chu kỳ pipeline để hoàn thành Ví dụ, nếu đầu vào là 4 vector có 256 phần tử, thì B sẽ là 4, vậy sẽ mất 4 chu kỳ đồng hồ để hoàn thành • Activate thực hiện hàm phi tuyến của neuron nhân tạo, với các tùy chọn cho ReLU, Sigmoid, tanh, và các hàm khác Đầu vào của nó là Bộ Cộng và đầu ra là Bộ đệm Thống nhất.

• Write_Host_Memory ghi dữ liệu từ Bộ đệm Thống nhất vào bộ nhớ CPU máy chủ Các chỉ thị khác bao gồm đọc/ghi bộ nhớ máy chủ thay thế, thiết lập cấu hình, hai phiên bản đồng bộ hóa, ngắt máy chủ, nhãn gỡ lỗi, no operation, và dừng Chỉ thị CISC MatrixMultiply là 12 byte, trong đó có 3 byte là địa chỉ Bộ đệm Thống nhất; 2 byte là địa chỉ Bộ Cộng; 4 byte là độ dài (đôi khi là 2 kích thước cho phép tích chập); và phần còn lại là mã opcode và cờ.

Mục tiêu là chạy toàn bộ mô hình suy luận trong TPU để giảm tương tác với CPU máy chủ và linh hoạt đủ để phù hợp với nhu cầu mạng nơ-ron sâu từ năm 2015 trở đi, thay vì chỉ đáp ứng nhu cầu của mạng nơ-ron sâu năm 2013.

2.2.5 Vi kiến trúc của TPU

Triết lý về kiến trúc nhỏ hóa của TPU là duy trì Đơn vị Nhân Ma Trận hoạt động liên tục Kế hoạch là ẩn đi việc thực thi của các chỉ thị khác bằng cách trùng lắp việc thực hiện chúng với chỉ thị MatrixMultiply Do đó, mỗi trong bốn loại chỉ thị chung trước đó đều có phần cứng thực thi riêng biệt (với đọc và ghi bộ nhớ máy chủ được kết hợp vào cùng một đơn vị) Để tăng tính song song của chỉ thị, chỉ thị Read_Weights tuân theo triết lý truy cậpthực thi tách rời (Smith, 1982b) khi chúng có thể hoàn thành sau khi gửi địa chỉ nhưng trước khi trọng số được

10

Ngày đăng: 04/05/2024, 12:46

Tài liệu cùng người dùng

Tài liệu liên quan