Logo Zephyrnet

Tối ưu hóa năng lượng ở cấp độ hệ thống

Ngày:

Năng lượng là mối quan tâm phổ biến và không thể tối ưu hóa mức tiêu thụ năng lượng của hệ thống nếu không xem xét toàn bộ hệ thống. Những bước tiến to lớn đã được thực hiện trong việc tối ưu hóa việc triển khai phần cứng, nhưng điều đó vẫn chưa đủ. Hệ thống hoàn chỉnh phải được tối ưu hóa.

Có những ý nghĩa sâu rộng đối với vấn đề này, một số trong số đó đang thúc đẩy con đường hướng tới điện toán dành riêng cho từng miền. Dịch chuyển sang trái đóng một vai trò, nhưng quan trọng hơn, nó có nghĩa là tất cả các bên đóng vai trò trong tổng mức tiêu thụ năng lượng cho một nhiệm vụ xác định phải làm việc cùng nhau để đạt được mục tiêu đó.

Năng lượng đang nhanh chóng trở thành mối quan tâm hàng đầu. Guillaume Boillet, giám đốc cấp cao về quản lý sản phẩm và tiếp thị chiến lược của công ty cho biết: “Khi hiệu quả năng lượng trở thành mối quan tâm hàng đầu trên tất cả các lĩnh vực điện toán, các kiến ​​trúc sư thường được yêu cầu xem xét chi phí năng lượng của các thuật toán cho cả thiết kế phần cứng và phần mềm”. động mạch. “Trọng tâm đang chuyển từ việc chỉ tối ưu hóa hiệu quả tính toán (tốc độ, thông lượng, độ trễ) sang tối ưu hóa hiệu quả sử dụng năng lượng (joules mỗi thao tác). Điều này đòi hỏi phải xem xét các yếu tố như số lượng truy cập bộ nhớ, khả năng song song của tính toán và việc sử dụng các bộ tăng tốc phần cứng chuyên dụng có thể mang lại khả năng tính toán tiết kiệm năng lượng hơn cho một số tác vụ nhất định.”

Điều này chuyển trọng tâm từ triển khai phần cứng sang phân tích kiến ​​trúc của cả phần cứng và phần mềm. William Ruby, giám đốc quản lý sản phẩm của Tập đoàn EDA cho biết: “Trong các giai đoạn sau của quy trình thiết kế, cơ hội tối ưu hóa giảm dần”. Synopsys. “Bạn có thể có nhiều cơ hội hơn để tối ưu hóa tự động nhưng bạn bị hạn chế ở mức cải thiện phần trăm nhỏ hơn. Khi xem xét đường cong về mức tiết kiệm tiềm năng (xem hình 1), đây không phải là một đường cong bằng phẳng từ kiến ​​trúc đến ký kết. Có một điểm uốn khi tổng hợp. Trước khi thiết kế được ánh xạ tới quá trình triển khai, bạn có nhiều mức độ tự do hơn, nhưng sau điểm uốn này, mọi thứ sẽ giảm sút đáng kể.”


Hình 1: Cơ hội tiết kiệm điện trong giai đoạn thiết kế. Nguồn: Tóm tắt

Rào cản lớn là trước điểm uốn, công suất sẽ phụ thuộc vào hoạt động và điều đó khiến việc tối ưu hóa tự động trở nên khó khăn hơn rất nhiều. Qazi Ahmed, giám đốc sản phẩm chính tại cho biết: “Trong quá trình phát triển RTL, các kiểm tra dựa trên vectơ động có thể được sử dụng để phát hiện sự lãng phí và thực hiện tái cấu trúc logic, kiểm soát đồng hồ, kiểm soát toán tử và các kỹ thuật khác để giảm thiểu lãng phí”. Điện thoại Siemens. “Điều quan trọng là phải hiểu rằng nguồn điện phụ thuộc vào từng trường hợp sử dụng và phải được cấu hình phù hợp với khối lượng công việc thực tế do phần mềm điều khiển để đảm bảo xử lý được tất cả các tình huống có thể xảy ra. Điều này đặc biệt đúng trong bối cảnh của SoC đầy đủ, trong đó đường bao công suất có thể khác hoàn toàn với những gì phân tích điều khiển vectơ tổng hợp ở cấp IP có thể hiển thị.”

Tim Kogel, kỹ sư chính về tạo mẫu ảo tại Synopsys, cho biết: “Sẽ cần phải lập kế hoạch trước, lập hồ sơ và tối ưu hóa nhiều hơn”.

Kogel chỉ ra nhiều cấp độ khác nhau cần được giải quyết:

  • Ở cấp độ kiến ​​trúc vĩ mô, để phân tích sự đánh đổi có giá trị lớn và lựa chọn các phần tử xử lý chuyên dụng;
  • Ở cấp độ kiến ​​trúc vi mô, để tối ưu hóa tập lệnh và đơn vị thực thi cho ứng dụng đích;
  • Ở cấp độ thuật toán, việc lựa chọn và tối ưu hóa các thuật toán để đạt hiệu quả tính toán và truy cập bộ nhớ, và
  • Ở cấp độ phần mềm, cung cấp phản hồi cho các nhà phát triển về cách tối ưu hóa phần mềm của họ để đạt được năng lượng và năng lượng.

Ông lưu ý: “Điều này sẽ yêu cầu công cụ nhận biết năng lượng và năng lượng để tạo nguyên mẫu ảo và phát triển phần mềm nhằm tạo ra dữ liệu, từ đó việc triển khai phần cứng và phần mềm có thể được tối ưu hóa”.

Ánh xạ phần mềm
Quyết định những gì nên có trong phần mềm là một nhiệm vụ ban đầu. “Tôi có muốn có lõi DSP để giảm tải cho CPU không?” Ruby của Synopsys hỏi. “Điều đó ảnh hưởng đến mức tiêu thụ năng lượng của tôi như thế nào? Tôi muốn triển khai bộ tăng tốc phần cứng hay tôi muốn thực hiện tất cả các chức năng này trong phần mềm? Chi phí năng lượng của phần mềm chạy trên CPU không phải là 0.”

Khi các hệ thống ngày càng được xác định rõ ràng bởi phần mềm của chúng, đó là lúc việc xem xét năng lượng phải bắt đầu. “Phần mềm là yếu tố then chốt khi nói đến việc tiết kiệm năng lượng và cải thiện hiệu suất,” Vincent Risson, kiến ​​trúc sư CPU ​​chính cấp cao của công ty cho biết. Cánh tay. “Các ứng dụng tính toán chuyên sâu thường được hưởng lợi đáng kể từ việc tối ưu hóa ứng dụng. Điều này có thể là tĩnh đối với các thư viện được điều chỉnh cao hoặc các khung động cho phép nhắm mục tiêu tính toán vào công cụ xử lý tối ưu nhất. Ví dụ: các thiết bị di động đã tiêu chuẩn hóa kiến ​​trúc hệ thống CPU cung cấp cho bộ xử lý ứng dụng hiệu suất tính toán khác nhau trong khi tuân thủ cấu hình và ISA chung. Điều này cho phép các ứng dụng được di chuyển linh hoạt sang bộ xử lý tối ưu để đạt hiệu quả. Các cơ chế được cung cấp để xem xét nội tâm và tính linh hoạt, được cung cấp bởi sự kết hợp của cả phần mềm và phần cứng không đồng nhất, sẽ mang lại cơ hội cải thiện hiệu quả trong tương lai.”

Thường có nhiều hơn một loại bộ xử lý mà phần mềm có thể chạy. Jeff Wilcox, đồng nghiệp và nhóm kỹ thuật thiết kế CTO cho kiến ​​trúc SoC khách hàng tại Intel, cho biết: “Dựa trên loại khối lượng công việc mà chúng tôi đang thấy, chúng tôi có thể chọn nơi chạy một ứng dụng nhất định”. “Nếu vượt quá nhu cầu của lõi nhỏ hơn, lõi lớn hơn có thể được kích hoạt. Có đặc tính đo từ xa và khối lượng công việc để thử và tìm ra nơi mọi thứ nên chạy để đạt hiệu quả năng lượng cao nhất. Rất nhiều khối lượng công việc mà chúng ta đang thấy hiện nay đã khác. Ngay cả khi đó là các tác nhân đối xứng đang làm việc trên cùng một khối lượng công việc, chúng vẫn có sự phụ thuộc lẫn nhau. Ngày càng có nhiều khối lượng công việc yêu cầu các tác nhân bất đối xứng, nơi chúng tôi có sẵn GPU, NPU, IPU và nơi các loại khối lượng công việc này đang hợp tác với CPU. Đó là một điều khó khăn hơn nhiều để tối ưu hóa. Chúng tôi đã đạt đến mức có thể hiểu được những thách thức về hiệu suất và sức mạnh, nhưng chúng tôi vẫn đang xây dựng các công cụ để thực sự hiểu cách tiếp thu và tối ưu hóa hoàn toàn.”

Khó khăn ở đây là kiến ​​trúc của khối lượng công việc có thể phụ thuộc vào kiến ​​trúc của phần cứng. Renxin Xia, phó chủ tịch phần cứng của Untether AI cho biết: “Có rất nhiều sự phát triển trong lĩnh vực AI và không chỉ quy mô của mô hình mới quan trọng”. “Điều quan trọng không kém là cách các mô hình được xây dựng và liệu chúng có được xây dựng theo cách tiết kiệm năng lượng hay không. Điều đó khó trả lời hơn vì nó phụ thuộc vào kiến ​​trúc. Chi phí năng lượng của thuật toán chạy trên GPU có thể rất khác so với chi phí năng lượng của thuật toán đó chạy trên bộ nhớ ở kiến ​​trúc điện toán.”

Tập trung vào phần mềm
Sự đồng thuận chung là không thể thực hiện được điều này nếu không có sự hợp tác nhiều hơn về phần cứng-phần mềm. Sailesh Kottapalli, thành viên cao cấp của đơn vị trung tâm dữ liệu của Intel, cho biết: “Cần đồng phát triển phần cứng-phần mềm để đạt được những cải tiến chức năng từng bước đó”. “Chỉ cố gắng làm điều đó một cách minh bạch trong phần cứng là đã đạt đến giới hạn. Hãy nhìn những gì đang xảy ra trong AI. Nếu phần cứng là yếu tố duy nhất, chúng ta sẽ không thấy được sự tiến bộ vượt bậc mà chúng ta đang thấy. Rất nhiều trong số đó là cải tiến về mặt thuật toán. Với các thuật toán phần mềm, nếu bạn giảm độ dài đường dẫn, bạn có thể đạt được kết quả tương tự với số lượng hướng dẫn ít hơn và giảm công việc phần mềm hơn. Đôi khi, khi bạn hiểu rõ điều đó, chúng tôi có thể nhận ra rằng đối với những thuật toán đó, sẽ có một tập lệnh tối ưu mới, một kiến ​​trúc vi mô mới và sau đó bạn có thể tối ưu hóa thêm điều đó trong phần cứng.”

Nó đòi hỏi một sự thay đổi lớn trong luồng phát triển phần mềm. Kogel của Synopsys cho biết: “Trước đây, kiến ​​trúc và luồng phần mềm được tối ưu hóa để tăng năng suất, nghĩa là các bộ xử lý đa năng được lập trình bằng ngôn ngữ cấp cao, sử dụng các công cụ phần mềm nhanh nhất và rẻ nhất”. “Định hướng chung là mang lại sự linh hoạt và năng suất cao nhất có thể, đồng thời chỉ tối ưu hóa ở mức thực sự cần thiết. Điều này cần phải được chuyển sang chỉ cung cấp mức độ linh hoạt theo yêu cầu và nếu không thì hãy sử dụng các biện pháp triển khai chuyên dụng.”

Đối với nhiều chức năng phần mềm, việc truy cập bộ nhớ là nguồn tiêu thụ điện năng lớn nhất. Ruby của Synopsys cho biết: “Một chức năng phần mềm có thể được triển khai theo nhiều cách khác nhau và điều đó dẫn đến các luồng lệnh khác nhau với các cấu hình năng lượng và công suất khác nhau”. “Bạn cần phải cân nhắc hoặc ấn định chi phí nặng hơn cho các hướng dẫn truy cập bộ nhớ. Bạn cần phải cẩn thận với cách bạn mô hình hóa mọi thứ. Mặc dù chỉ là CPU, nhưng bạn cần lập mô hình chi phí năng lượng trong bối cảnh hệ thống.”

Trong tương lai, độ chính xác của kết quả cũng có thể là một yếu tố có thể giúp tối ưu hóa. Arteris' Boillet cho biết: “Có thể tiết kiệm năng lượng đáng kể bằng cách tối ưu hóa phần mềm để sử dụng tốt hơn các tài nguyên phần cứng sẵn có”. “Điều này bao gồm tối ưu hóa trình biên dịch, tái cấu trúc mã để giảm độ phức tạp tính toán và các thuật toán được thiết kế đặc biệt để tiết kiệm năng lượng. Điều thứ hai có thể đạt được bằng tính toán gần đúng cho các ứng dụng có thể chịu được một số mức độ thiếu chính xác, như xử lý đa phương tiện, học máy và phân tích dữ liệu cảm biến.”

nghiên cứu
Tất cả bắt đầu với việc phân tích. Ruby cho biết: “Chúng tôi có thể tạo ra một mô hình ảo của hệ thống. “Sau đó, chúng tôi có thể xác định các trường hợp sử dụng, trong bối cảnh này thực sự là một chuỗi các chế độ vận hành của thiết kế. Đó chưa phải là phần mềm. Bạn có hệ thống được mô tả như một tập hợp các mô hình, cả mô hình hiệu suất cũng như mô hình sức mạnh. Và nó sẽ cung cấp cho bạn hồ sơ sức mạnh dựa trên các mô hình này và trường hợp sử dụng mà bạn đã xác định. Giải pháp thay thế tiếp theo là một kiểu mô tả hệ thống ảo tương tự. Bây giờ, bạn chạy một khối lượng công việc phần mềm thực tế dựa trên điều đó. Nếu bạn đi sâu hơn nữa, nếu bạn muốn hiển thị rõ hơn, chi tiết mịn hơn, bạn có thể lấy mô tả RTL của thiết kế, có thể nó chưa phải là bản cuối cùng, có thể vẫn còn sớm, nhưng miễn là nó hầu như đang ngọ nguậy, bạn có thể đặt nó vào một trình giả lập và chạy công việc thực sự. Khi bạn làm điều đó, trình mô phỏng sẽ tạo cơ sở dữ liệu hoạt động. Khả năng phân tích công suất theo định hướng mô phỏng tồn tại có thể lấy một lượng lớn dữ liệu, hàng trăm triệu chu kỳ xung nhịp của dữ liệu khối lượng công việc và tạo ra cấu hình công suất. Có rất nhiều việc có thể làm được.”

Trong một số trường hợp, khoảng thời gian đó có thể không đủ dài. Kottapalli của Intel cho biết: “Hầu hết phân tích nhiệt của chúng tôi đều dựa trên phân tích vòng kín, được xây dựng trên dữ liệu silicon chứ không phải mô phỏng trước silicon vì độ dài vết cần thiết và lượng thời gian cần thiết cho phân tích”. “Không có cách nào chúng tôi có thể mô phỏng lâu như vậy để thiết lập được cấu hình nhiệt thực tế. Chúng tôi sử dụng dữ liệu hồ sơ từ silicon, sử dụng các loại khối lượng công việc và dấu vết khác nhau, sau đó chúng tôi phân tích những giải pháp chúng tôi cần xây dựng.”

Sẽ dễ dàng hơn khi khung thời gian ngắn hơn. Ruby nói: “Các quyết định về kiến ​​trúc cơ bản cần phải được xem xét với một số quan điểm về quyền lực”. “Bạn cần một mô hình cấp cao hơn, trừu tượng hơn về tất cả các bộ phận trong hệ thống của mình, bao gồm tất cả các lõi xử lý và hệ thống con bộ nhớ, bởi vì cách tổ chức đó thực sự rất quan trọng. Thực sự cần bao nhiêu bộ nhớ? Đây là những quyết định kiến ​​trúc cơ bản. Bạn cần có một số dữ liệu nguồn được liên kết với các thành phần này. CPU tiêu thụ bao nhiêu năng lượng trong khối lượng công việc cụ thể này hoặc khối lượng công việc cụ thể đó? Thế còn lõi DSP, phần cứng, bộ nhớ, mạng trên chip – mỗi thứ đó tiêu tốn bao nhiêu khi thực hiện mỗi thao tác? Những điều đó được yêu cầu để đưa ra các quyết định kiến ​​trúc cơ bản.”

Có rất nhiều công cụ mới liên quan đến quyền lực được yêu cầu. Wilcox của Intel cho biết: “Trong khi các công cụ EDA tồn tại để xử lý các quá trình chuyển đổi mật độ năng lượng cao, tốc độ cao, thì vẫn còn nhiều thách thức khác”. “Một số thách thức khác là xem xét động lực không đổi trong thời gian dài hơn hoặc cách quản lý mọi thứ trên SoC. Tôi chưa thấy nhiều thứ trong không gian EDA hỗ trợ điều đó. Chúng tôi đang tạo ra nhiều công cụ nội địa hơn để thử và xây dựng những khả năng đó.”

Trong khi các công cụ đã được phát triển cho khía cạnh phần cứng của những sự cân bằng kiến ​​trúc này, ngày nay có rất ít công cụ tồn tại để trợ giúp về mặt phần mềm. Ruby nói: “Chúng tôi cần các kỹ sư phần mềm của mình tạo ra mã chính xác càng nhanh càng tốt. “Điều tôi tin thực sự cần thiết là một loại công nghệ đồng hành nào đó dành cho nhà phát triển phần mềm. Giống như chúng ta có các công cụ phân tích năng lượng RTL cho phần cứng, các hệ thống phát triển phần mềm cần một số loại trình phân tích năng lượng sẽ cho họ biết mã này đang tiêu thụ bao nhiêu năng lượng và năng lượng. Vì chúng ta hiện đang sống trong thời đại AI nên sẽ thật tuyệt nếu công nghệ AI phân tích mã. Bạn nhận được ước tính về mức tiêu thụ năng lượng và một số công nghệ AI có thể cho biết, nếu bạn cơ cấu lại mã của mình, theo cách này, bạn có thể tiết kiệm rất nhiều năng lượng.”

Kết luận
Thế giới phần cứng đang gặp phải những bức tường liên quan đến quyền lực và năng lượng. Giới hạn nhiệt và mối lo ngại đang gia tăng trong cộng đồng đó. Nếu không tính đến chúng, chức năng phần cứng không thể phát triển. Nhưng những điều này vẫn chưa đến mức trở thành mối quan tâm ở cấp độ hệ thống. Cho đến khi tất cả các bên góp phần tiêu thụ năng lượng ngồi vào cùng một phòng và thiết kế hệ thống tiết kiệm năng lượng, chúng ta sẽ không thấy được giải pháp thực sự cho vấn đề.

Có một mặt thứ hai cho điều này là tốt. Tất cả những người tạo ra các công cụ mà họ sử dụng cũng phải vào cùng phòng và phát triển các quy trình giúp mọi người thành công. Mặc dù đã có một số tiến bộ giữa thế giới EDA và hệ thống để giải quyết một số thách thức về nhiệt, nhưng có ít tiến bộ hơn ở cấp độ kiến ​​trúc và hầu như không có tiến bộ nào giữa thế giới phần cứng và phần mềm. Nguyên mẫu ảo tập trung vào chức năng là chưa đủ. Chúng cần được mở rộng sang sức mạnh và năng lượng của hệ thống, và điều đó không thể thực hiện được nếu không có sự tham gia của các nhà phát triển trình biên dịch. Có một cơ hội trong lĩnh vực điện toán dành riêng cho miền, bởi vì những người này đang đi theo hướng mới trong phần cứng do những vấn đề này và điều đó có thể đủ quan trọng đối với họ để đạt được tiến bộ trong các lĩnh vực lân cận. Nhưng tất cả dường như vẫn còn rất lâu ở tương lai.

Đọc liên quan
Giá điện tăng cao trong chip
Nhiều dữ liệu hơn đòi hỏi phải xử lý nhanh hơn, điều này dẫn đến hàng loạt vấn đề - không phải tất cả đều rõ ràng hoặc thậm chí có thể giải quyết được.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img