Gửi tin nhắn

Tin tức

March 11, 2021

Bộ nhớ miền cụ thể

Máy tính theo miền cụ thể có thể là một vấn đề nan giải, nhưng nó đang tránh được vấn đề thực sự.

Mối quan tâm lớn hơn là những bộ nhớ làm giảm hiệu suất của bộ xử lý, tiêu thụ nhiều điện năng hơn và chiếm nhiều diện tích chip nhất.Ký ức cần thoát khỏi cấu trúc cứng nhắc mà phần mềm hiện có ưa thích.Khi các thuật toán và bộ nhớ được thiết kế cùng nhau, các cải tiến về hiệu suất là đáng kể và quá trình xử lý có thể được tối ưu hóa.

Quá trình xử lý theo miền cụ thể đã được phổ biến bởi bài giảng Turing năm 2018, “Kỷ nguyên vàng mới cho kiến ​​trúc máy tính” của John Hennessy và David Patterson.Nhưng các bộ vi xử lý đã bị hạn chế bởi bộ nhớ trong nhiều thập kỷ.Việc thay đổi quá trình xử lý mà không xem xét lại bộ nhớ và phân cấp bộ nhớ sẽ bỏ qua Định luật Amdahl, quy luật này cung cấp mối quan hệ toán học giữa tốc độ tăng tốc có thể cho một hệ thống khi một số phần nhất định của hệ thống đó được cải thiện.Về cơ bản, nó nói rằng bạn nhận được lợi nhuận giảm dần nếu bạn chỉ tập trung vào một phần của hệ thống thay vì xem xét toàn bộ hệ thống.

Vậy tại sao không tập trung vào điểm nghẽn?Prasad Saggurti, giám đốc tiếp thị sản phẩm của Synopsys cho biết: “Bộ nhớ dành riêng cho miền chỉ là một thuật ngữ mới, nhưng các kiến ​​trúc sư đã thực hiện những loại tối ưu hóa này trong một thời gian dài.“Và nếu họ không làm vậy, họ đang bỏ lỡ một thủ thuật bởi vì hầu hết mọi người đã và đang làm điều đó.”

Những người khác đồng ý.“Ghi lại những kỷ niệm video - DRAM với các thanh ghi dịch chuyển tích hợp?”hỏi Michael Frank, đồng nghiệp và là kiến ​​trúc sư hệ thống tại Arteris IP.“Có lẽ GDDR [1-5], những ký ức thẻ nhớ bộ nhớ cache đặc biệt, hoặc những ký ức liên kết trở lại những ngày của TTL?Rất nhiều trong số này đã không thực sự tồn tại vì chức năng của chúng quá cụ thể.Họ nhắm mục tiêu một thiết bị duy nhất.Bạn cần một miền đủ lớn và bạn đang chiến đấu chống lại chi phí thấp của DRAM ngày nay, vốn có lợi cho việc sản xuất số lượng lớn và quy mô lớn. ”

Đôi khi nó còn đi sâu hơn thế.Saggurti của Synopsys nói: “Bạn có thể cố định một thứ gì đó vào một bản ROM.“Những gì chúng ta đang thấy là ngày nay nhiều người đang tinh chỉnh bộ nhớ hơn.Ví dụ, với một phép biến đổi Fourier hoặc một phép biến đổi Z, mọi người sẽ viết mã theo cách mà bạn có thể lưu trữ các hệ số theo một thứ tự nhất định.Khi thực hiện phép nhân ma trận, bạn có thể lưu trữ các hệ số theo một thứ tự nhất định để việc đọc ra sẽ nhanh hơn.Bạn không thể lưu trữ dữ liệu trong một bộ nhớ, thay vào đó, hãy đặt nó vào ba hoặc bốn bộ nhớ khác nhau để bạn có thể đọc mọi thứ qua nhiều đường dẫn dữ liệu.Những điều này đã xảy ra gần đây hơn. "

Thay đổi thật khó.“Thách thức là trong quá khứ, mọi người có một mô hình trừu tượng và đẹp để suy nghĩ về các hệ thống máy tính,” Steven Woo, đồng nghiệp và nhà phát minh nổi tiếng tại Rambus cho biết.“Họ thực sự không bao giờ phải nghĩ về trí nhớ.Nó được cung cấp miễn phí và mô hình lập trình đã làm cho nó trở nên sao cho khi bạn thực hiện tham chiếu đến bộ nhớ, điều đó chỉ xảy ra.Bạn không bao giờ phải nói rõ ràng về những gì bạn đang làm. "

Tiến bộ đang được thực hiện trong hiệu suất bộ nhớ nói chung.“Các bộ điều khiển bộ nhớ ngày nay và các tiêu chuẩn giao diện tiên tiến đã cải thiện đáng kể những gì bạn có thể chiết xuất từ ​​công nghệ silicon tiên tiến,” Arteris 'Frank nói.“Điều này đã kích hoạt các hàng đợi sâu và bộ lập lịch nâng cao.Các công nghệ bộ nhớ tiên tiến, chẳng hạn như bộ nhớ băng thông cao (HBM) và băng thông hỗ trợ khuôn xếp chồng lên nhau mà chúng tôi nghĩ rằng không thể đạt được chỉ một thập kỷ trước.Tuy nhiên, nó không hề rẻ.Công nghệ dưới 10 nm cũng cho phép bộ nhớ đệm lớn, vì vậy có lẽ chúng ta có thể gọi bộ nhớ dành riêng cho miền của người đàn ông tội nghiệp này ”.

Nhưng đây đều là những ví dụ về những thay đổi gia tăng nhỏ.Matt Horsnell, kỹ sư nghiên cứu chính cấp cao của nhóm Nghiên cứu và Phát triển của Arm cho biết: “Việc kiểm tra các hệ thống con bộ nhớ trong đó việc tính toán chủ yếu tuân theo dữ liệu, chứ không phải ngược lại, đòi hỏi phải suy nghĩ lại về nhiều quy tắc mà các kiến ​​trúc sư đã quen với.“Có một cơ hội để nâng cao tính trừu tượng của lập trình, từ danh sách các hoạt động điển hình ngày nay trên dữ liệu, sang một dạng mở rộng bao gồm sự đồng thời và một số khái niệm về khoảng cách tương đối giữa các đơn vị tính toán và các mục dữ liệu.Sự trừu tượng hóa như vậy có thể cho phép các chuyển đổi cần thiết để nhắm mục tiêu tối ưu hơn các ký ức miền cụ thể khi các thuật toán đang phát triển nhanh chóng. "

Trung tâm dữ liệu ở ghế lái xe
Trung tâm dữ liệu là đầu tàu cho nhiều xu hướng công nghệ ngày nay.Ravi Thummarukudy, Giám đốc điều hành của Mobiveil cho biết: “Một trong những ứng dụng phát triển nhanh nhất cho máy tính là trong các trung tâm dữ liệu, nơi các ứng dụng phần mềm cần nhiều dung lượng bộ nhớ hơn, băng thông với độ trễ thấp hơn”.“Với sự ra đời của tiêu chuẩn công nghiệp mới nhất, Compute Express Link (CXL), các kiến ​​trúc sư hệ thống có thể phân chia bộ nhớ cần thiết giữa bộ nhớ chính trong DDRn DIMMS và DDRn dựa trên CXL hoặc các bộ nhớ liên tục mới hơn.Độ trễ và đặc điểm kinh tế của các tầng ký ức này là khác nhau, và điều đó mang đến cho các kiến ​​trúc sư các lựa chọn để trộn và kết hợp các ký ức cho phù hợp với yêu cầu của họ. ”

Đó là sự tiếp nối của các kiến ​​trúc bộ nhớ kế thừa.Tim Kogel, kỹ sư ứng dụng chính tại Synopsys cho biết: “Nhiều OEM và nhà hệ thống đang thiết kế các SoC của riêng họ để tùy chỉnh silicon theo khối lượng công việc cụ thể của họ.“Cơ hội lớn nhất để tăng hiệu suất và năng lượng là sự chuyên môn hóa của hệ thống phân cấp bộ nhớ cùng với kiến ​​trúc kết nối hỗ trợ.

Cân nhắc quyền lực.Arun Iyengar cho biết: “Trong các kiến ​​trúc hiện tại, 90% năng lượng cho khối lượng công việc của AI được tiêu thụ bởi chuyển động dữ liệu, chuyển trọng lượng và kích hoạt giữa bộ nhớ ngoài, bộ nhớ đệm trên chip và cuối cùng là chính phần tử máy tính (xem hình 1). , Giám đốc điều hành của Untether AI.“Chỉ bằng cách tập trung vào nhu cầu tăng tốc suy luận và tối đa hóa hiệu suất năng lượng, chúng tôi mới có thể mang lại hiệu suất tính toán chưa từng có.”

Tối ưu hóa bộ nhớ là một vấn đề cấp hệ thống liên quan đến tất cả các khía cạnh của thiết kế - phần cứng, phần mềm và công cụ.Kogel cho biết thêm: “Các chiến lược để tối ưu hóa bộ nhớ rất đa dạng và phụ thuộc vào miền ứng dụng.“Chiến lược tốt nhất là tránh hoàn toàn việc truy cập bộ nhớ ngoài chip.Đối với các kiến ​​trúc miền cụ thể, điều này thường có thể đạt được bằng cách tăng bộ nhớ trên chip khả dụng, dưới dạng bộ nhớ đệm hoặc bộ nhớ được quản lý ứng dụng.Đặc biệt trong lĩnh vực máy gia tốc học sâu, bộ nhớ trên chip có sẵn là một tham số thiết kế quyết định cũng ảnh hưởng đến cách ứng dụng mạng nơ-ron được biên dịch vào phần cứng đích - ví dụ như cách xếp chồng của toán tử tích chập. ”

Nhiều thiết kế đang tìm cách đi xa hơn thế này.Arm's Horsnell cho biết: “Các khái niệm bộ nhớ dành riêng cho miền đang được khám phá trong lĩnh vực tính toán không gian.“Ví dụ, DSP có xu hướng cung cấp một nhóm các bộ nhớ phân tán, thường được quản lý trực tiếp trong phần mềm, có thể phù hợp hơn với các yêu cầu băng thông và các kiểu truy cập của các ứng dụng chuyên biệt hơn so với các hệ thống bộ nhớ dùng chung truyền thống.Để thu hẹp khoảng cách hiệu quả với các ASIC chức năng cố định, các bộ xử lý này thường cung cấp một số hình thức chuyên môn hóa bộ nhớ bằng cách cung cấp hỗ trợ trực tiếp cho các mẫu truy cập cụ thể (chẳng hạn như bộ đệm N, FIFO, bộ đệm dòng, nén, v.v.).Một khía cạnh quan trọng của việc điều phối trong các hệ thống này và một thách thức trong việc thiết kế chúng là xác định độ chi tiết phù hợp cho các truy cập dữ liệu, điều này có thể giảm thiểu chi phí giao tiếp và đồng bộ hóa trong khi tối đa hóa sự đồng thời.Những thách thức khác vẫn tồn tại, bao gồm lập trình, tính liên kết, đồng bộ hóa và dịch thuật, làm tăng thêm độ phức tạp của phần mềm.Tuy nhiên, một lộ trình khả thi là dựa vào các ngôn ngữ dành riêng cho miền (DSL), bằng cách làm cho luồng dữ liệu của các ứng dụng rõ ràng hơn, có thể cho phép các trình biên dịch xác định các kiểu truy cập bộ nhớ chuyên biệt và ánh xạ chúng vào phần cứng hiệu quả hơn. "

Nó cũng trả tiền để xem xét kỹ hơn những ký ức của chính họ.Anand Thiruvengadam, giám đốc tiếp thị sản phẩm của nhân viên cấp cao của Synopsys cho biết: “Siêu tùy biến là xu hướng mà chúng ta thấy khi nhắc đến kỷ niệm.“Điều này có nghĩa là những ký ức được xây dựng có mục đích cho các ứng dụng cuối khác nhau.Ngay cả trong một ứng dụng cuối cụ thể như AI cũng có những nhu cầu khác nhau về ký ức, chẳng hạn như đào tạo hoặc truyền thông tin, truyền thông trong máy chủ hoặc truyền thông ở rìa xa.Mỗi ứng dụng này có các yêu cầu khác nhau và điều đó có nghĩa là bạn phải tùy chỉnh các bộ nhớ.Tùy chỉnh này có nghĩa là bạn không còn có thể xem kỷ niệm dưới dạng hàng hóa hoặc sản phẩm đã bán.Bạn phải xây dựng nó cho một ứng dụng cụ thể.Đó là nơi mà nước sốt bí mật phát huy tác dụng ”.

Trong nhiều trường hợp, bộ nhớ và kết nối được kết hợp chặt chẽ với nhau.“Bất cứ điều gì xảy ra khi nói đến việc kết hợp bộ nhớ và công nghệ kết nối để đáp ứng các yêu cầu truy cập dữ liệu của khối lượng công việc ứng dụng - ví dụ: nhiều cấp phân cụm kết hợp xử lý với bộ nhớ cục bộ để tận dụng tính cục bộ trong các ứng dụng luồng dữ liệu hoặc đa SRAM trên chip có nhiều cổng / nhiều cổng để đệm bản đồ tính năng của máy gia tốc CNN và cấu trúc phân cấp bộ nhớ đệm sâu với các giao thức đồng tiền tệ tinh vi để giảm thiểu khối lượng công việc của trung tâm dữ liệu làm việc trầm lắng. ”

Những thay đổi nhỏ có thể mang lại kết quả lớn.Frank nói: “Hãy nhìn vào điều kỳ diệu nho nhỏ mà Apple đã thực hiện với M1.“Họ đã tìm ra cách kiến ​​trúc một hệ thống con bộ nhớ phục vụ tốt nhiều bản gốc không đồng nhất, sử dụng chiến lược bộ nhớ đệm thông minh và hệ thống phân cấp bộ nhớ cache đa cấp, khổng lồ.”

Như thường lệ, phần mềm là mỏ neo quán tính.Saggurti nói: “Điều thường xảy ra là có một thuật toán và chúng tôi thấy cách để tối ưu hóa nó, tối ưu hóa bộ nhớ, để thuật toán được triển khai tốt hơn nhiều.“Mặt khác, chúng ta có những loại trí nhớ khác nhau.Bạn có thể thay đổi thuật toán của mình để sử dụng những loại ký ức mới này không?Trước đây, việc sử dụng TCAM chủ yếu là một cấu trúc miền mạng để tra cứu địa chỉ IP.Gần đây, các công cụ đào tạo đang bắt đầu sử dụng TCAM và đó là một cách tiếp cận khác.Điều này cần phần mềm hoặc phần sụn để thay đổi dựa trên loại bộ nhớ có sẵn.Nhưng hầu hết thời gian, phần mềm vẫn cố định và bộ nhớ thay đổi để làm cho việc triển khai kết quả tốt hơn. "

Nhận thức về thông lượng
Những ngày này, rất nhiều thời gian và tiền bạc đang được đầu tư vào trí tuệ nhân tạo.Các chip tùy chỉnh bị hạn chế bởi thông lượng và điều đó đang đặt sự chú ý vào bộ nhớ và kết nối.

Kogel nói: “Về mặt lịch sử, các kiến ​​trúc bộ nhớ và kết nối được thiết kế dựa trên bảng tính tĩnh hoặc các mô hình phân tích đơn giản như mô hình hiệu suất đường cao tốc.“Đối với các ứng dụng tiên tiến, điều này trở nên khá phức tạp.Ví dụ: dự đoán yêu cầu bộ nhớ của mọi lớp trong CNN đòi hỏi phải xem xét tối ưu hóa trình biên dịch như xếp lớp và hợp nhất lớp.Các phương pháp tĩnh này trở nên phức tạp và không chính xác một cách phi lý đối với việc dự đoán và tối ưu hóa khối lượng công việc cấp SoC với các hệ thống con IP đa dạng và các kịch bản ứng dụng động.Mặt khác, việc chạy ứng dụng trên mô phỏng phần cứng hoặc hệ thống tạo mẫu là quá muộn trong quá trình phát triển để thực hiện bất kỳ thay đổi mạnh mẽ hoặc tối ưu hóa lớn nào về thiết kế bộ nhớ ”.

Điều đó đặt trọng tâm vào khối lượng công việc dự định.Frank nói: “Chìa khóa của hệ thống con bộ nhớ hiệu quả là kiến ​​thức về khối lượng công việc của bạn.“Hiểu cách nó hoạt động, thậm chí có thể định hình nó theo cách làm cho nó tương thích hơn với giới hạn của hệ thống phân cấp bộ nhớ của bạn, đây là nơi mà kiến ​​trúc được thử thách.Máy gia tốc miền cụ thể yêu cầu hệ thống bộ nhớ được điều chỉnh - và nghệ thuật xây dựng công cụ chuyển đổi 'trở kháng' phù hợp với DRAM được sản xuất hàng loạt, tổ chức trang, truy cập liên tục DRAM và mô hình truy cập của công cụ yêu cầu thông tin chi tiết về hành vi hệ thống, công cụ mô hình hóa và rất nhiều khối lượng công việc để chơi với.Đôi khi cần phải thay đổi cách khối lượng công việc xử lý dữ liệu để có thể cải thiện hệ thống tổng thể.Một ví dụ điển hình là sự chuyển đổi từ kết xuất 'trực tiếp' sang xử lý dựa trên ô trong GPU. "

Tất cả đều thuộc về mô hình hóa và mô phỏng.Kogel nói: “Chúng tôi đề xuất việc sử dụng các công cụ tạo mẫu ảo để mô hình hóa khối lượng công việc của ứng dụng, cùng với các mô hình cấp giao dịch chính xác của kiến ​​trúc bộ nhớ và kết nối liên thông.“Cách tiếp cận định lượng 'kiến trúc đầu tiên' này cho phép phân tích cân bằng sớm, dẫn đến một đặc điểm kỹ thuật triển khai đáng tin cậy.Với chi phí của nỗ lực mô phỏng và mô phỏng bổ sung, lợi ích là giảm nguy cơ thiếu mục tiêu hiệu suất và năng lượng, hoặc giảm chi phí thiết kế quá mức phần cứng chỉ để ở khía cạnh an toàn.Trong thời đại lợi nhuận giảm dần từ Định luật Moore, cơ hội là đưa ra một sản phẩm được tối ưu hóa và khác biệt hơn ”.

Điều đó cũng cho phép thấy được tác động của các thay đổi thuật toán.Thiruvengadam nói: “Cần phải quay lại và thiết kế lại các thuật toán.“Chúng có thể được thiết kế lại cho các kiến ​​trúc ký ức kế thừa truyền thống, hoặc chúng có thể được thiết kế lại cho các kiến ​​trúc mới, phong cách ký ức mới, hương vị ký ức mới.Sự thúc đẩy liên tục này để mở rộng hiệu suất, mở rộng chi phí và cũng có thể cân bằng sự cân bằng cho các ứng dụng khác nhau.Về cơ bản, đây là lý do tại sao bạn đang thấy sự phát triển liên tục của MRAM và FeRAM.Họ đang cố gắng tìm ra điểm ngọt ngào cho ít nhất một vài biến số, nếu không phải là tất cả các biến số.Nhu cầu thiết kế lại các thuật toán cùng với kiến ​​trúc bộ nhớ chắc chắn đang trở nên quan trọng ”.

Cân bằng là cần thiết.Frank nói: “Bạn cần suy nghĩ về khái niệm cường độ tính toán và loại hoạt động liên quan.“Một số thuật toán nhất định có yêu cầu băng thông vô độ, trong khi những thuật toán khác chỉ di chuyển một lượng dữ liệu tương đối nhỏ nhưng thực hiện hàng nghìn thao tác trên đó.Hoạt động trong bộ nhớ có thể hoạt động tốt đối với xử lý kiểu SIMD, trong đó băng thông lệnh nhỏ so với băng thông dữ liệu và nhiều phần tử được xử lý bằng cách sử dụng cùng một công thức.Nhưng ngay sau khi có các phụ thuộc tuần tự trong luồng dữ liệu hoặc luồng dữ liệu không đều, lợi ích của bộ nhớ miền cụ thể sẽ thu hẹp lại. "

Bộ nhớ tùy chỉnh
Mặc dù những thay đổi về kiến ​​trúc có thể tạo ra kết quả lớn, nhưng việc tối ưu hóa các ký ức cũng có thể mang lại lợi ích.Horsnell nói: “Một phần lớn công suất và diện tích của các máy gia tốc ngày nay được sử dụng trên bộ nhớ.“Vì vậy, bất kỳ cải tiến nào về độ trễ / mật độ / năng lượng mà các công nghệ bộ nhớ mới đạt được đều có thể có tác động mạnh mẽ.”

Kỷ niệm tùy chỉnh đang trở thành công việc kinh doanh lớn.Saggurti nói: “Bạn bắt đầu thấy những thứ như máy tính trong bộ nhớ, máy tính bộ nhớ gần, những ký ức cụ thể có thể là bộ nhớ ghi tất cả - những ký ức được tối ưu hóa cho một số loại hoạt động nhất định."Chúng tôi nhận thấy rất nhiều khách hàng hỏi chúng tôi về MRAM, thậm chí nhiều tùy chỉnh hơn đối với SRAM, TCAM và một số chỉnh sửa nhất định đối với TCAM."

Tuy nhiên, khó khăn vẫn còn.Frank nói: “Tôi đã có rất nhiều cuộc thảo luận về các thiết kế bộ nhớ tùy chỉnh, nơi xử lý trên khuôn bộ nhớ sẽ là một kiến ​​trúc 'lý tưởng'.“Nó sẽ cung cấp băng thông cao, độ trễ thấp, v.v. Mọi thứ đều đúng, ngoại trừ thực tế, quá trình bộ nhớ đang hạn chế những gì logic có thể được tích hợp - ba hoặc bốn lớp kim loại, bóng bán dẫn công suất thấp nhưng chậm.Điều đó có nghĩa là công cụ tính toán không hiệu quả.Hy sinh tốc độ xung nhịp và độ phức tạp của mạch đột nhiên khiến việc tích hợp công cụ máy tính không còn là một lựa chọn tốt như vậy nữa ”.

Nhưng một số thay đổi này sẽ trở nên cần thiết.Saggurti nói: “Mọi người muốn sử dụng flash trên chip và biến nó thành flash nhúng.“Sau đó, câu hỏi trở thành, 'Liệu nó có khả thi không?'Ở bước sóng 28nm, bạn có thể tạo ra flash nhúng, nhưng mọi người bắt đầu nghĩ về những thứ như MRAM ở bước sóng 22nm. "

Tuy nhiên, vẫn có những cách khác để nhìn nhận vấn đề.Saggurti cho biết thêm: “Sự thay đổi quy trình trên tấm wafer và trên khuôn, và thậm chí theo thời gian, giới hạn thiết kế bộ nhớ.“Khi bạn thiết kế một bộ nhớ, một SRAM đơn giản, bạn có xu hướng thiết kế cho trường hợp ô bit đi theo một hướng - chậm - và vùng ngoại vi đi theo hướng khác - nhanh.Nếu bạn thiết kế cho điều đó và nếu phần lớn silicon của bạn là điển hình, bạn đang để lại rất nhiều hiệu suất và sức mạnh.Nếu bạn hiểu bạn đang ở đâu trong phạm vi quy trình và cho phép nhà thiết kế chip xử lý thông tin đó, thì bạn có thể điều chỉnh thời gian cho phù hợp.Thiết kế của bạn có thể tối ưu hơn và bạn không phải thiết kế cho trường hợp xấu nhất. "

Phần kết luận
Mặc dù bộ nhớ luôn là một sự cân bằng trong thiết kế, nhưng nó chưa bao giờ nhận được sự quan tâm như quá trình xử lý, mặc dù nó là giới hạn hiệu suất về băng thông, điện năng và diện tích.AI đang khiến mọi người phải suy nghĩ lại về các kiến ​​trúc bộ nhớ không cần thiết, nhưng với sự chú ý thêm đó, các nhóm thiết kế cũng có thể suy nghĩ lại về một số phần mềm và thuật toán đã được tối ưu hóa cho các hệ thống bộ nhớ cũ.Trong một thế giới mà việc tăng hiệu suất không đến miễn phí sau mỗi 18 tháng, các biện pháp khắc nghiệt hơn đang trở thành cách duy nhất để ngăn sản phẩm trở thành hàng hóa. (Theo Brian Bailey)

Chi tiết liên lạc