Quy luật Moore & Kiến trúc đa lõi – Phần 1 (Phiên bản 1.0)

Lịch sử ra đời

Chỉ chưa đầy 20 năm sau ngày Shockley cùng với các đồng nghiệp của mình tại phòng thí nghiệm Bell Labs phát minh ra chất bán dẫn, và cũng chỉ chưa đến 5 năm kể từ lúc Bob Noyce và Jack Kilby phát minh ra mạch tích hợp, ngày 19 tháng Tư năm 1965, cách đây hơn 43 năm, trong số báo kỷ niệm lần thứ 35 của tạp chí Electronic, Gordon Moore đã đưa ra một dự đoán khá nổi tiếng:

… The complexity for minimum component costs has increased at a rate of roughly a factor of two per year (see graph on next page). Certainly over the short term this rate can be expected to continue, if not to increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years. That means by 1975, the number of components per integrated circuit for minimum cost will be 65,000. I believe that such a large circuit can be built on a single wafer…

Gordon Moore, Cramming More Components Onto Integrated Circuits, Electronic Magazine, Vol.38, Num.8, April 19, 1965. (Bản PDF)

Nói một cách nôm na, Moore dự đoán là số lượng transistor trên một chip đơn sẽ tăng gấp đôi sau mỗi năm một. Đây chỉ là một dự đoán theo kiểu ngoại suy dựa trên các số liệu cụ thể thời bấy giờ, hoàn toàn không có chứng minh gì về mặt toán học, theo như lời Moore kể lại dưới đây.

I was given the chore of predicting what would happen in silicon components in the next 10 years for the 35th anniversary edition of “Electronic Magazine”. So I looked at what we were doing in integrated circuits at that time, and we made a few circuits and gotten up to 30 circuits on the most complex chips that were out there in the laboratory, we were working on with about 60, and I looked and said gee in fact from the days of the original planar transistor, which was 1959, we had about doubled every year the amount of components we could put on a chip. So I took that first few points, up to 60 components on a chip in 1965 and blindly extrapolated for about 10 years and said okay, in 1975 we’ll have about 60 thousand components on a chip.


Excerpts from A Conversation with Gordon Moore: Moore’s Law (Bản PDF)

Sau khi Moore điều chỉnh nhận định này lần thứ hai vào năm 1975, từ một năm thành 18 tháng, hay nói một cách dễ hiểu là số lượng transistor trên một chip sẽ tăng thêm khoảng 60% cho từng năm một, thực tế phát triển của ngành công nghiệp máy tính đã chứng minh nhận định của Moore là đúng, và đưa nó trở thành một huyền thoại.

Thật ra tên gọi “quy luật Moore” chỉ được đưa ra vào năm 1970 bởi một người bạn của Moore, là giáo sư Carver Mead ở Caltech (cũng là trường Moore đã từng học và nhận bằng Tiến sĩ Hóa Lý), một nhà tiên phong trong lĩnh vực VLSI.

Nên hiểu thế nào về những phát biểu của Moore

Sau khi viết bản đầu tiên của bài này, tôi nhận thấy là có rất nhiều cách diễn dịch quy luật Moore ở cả các tài liệu trong và ngoài nước. Điều này cũng là chuyện thường xảy ra với những dự đoán đã trở thành huyền thoại, khi chúng được kể đi kể lại nhiều lần, mỗi lần khác đi một chút xíu, dẫn đến kết cuộc là nhiều khi trở thành tam sao thất bản. Đối với quy luật Moore, điều này lại càng dễ xảy ra, vì ông đã không sử dụng các công thức toán học chính xác trong bài viết, mà chỉ dùng lời văn cộng với đồ thị và tranh minh họa để đưa người đọc đến với kết luận của mình.

Để hiểu rõ hơn về những gì Moore đã viết, và quan trọng hơn là những gì ông muốn ám chỉ, tôi đã cố gắng đọc lại bài viết ban đầu. Tôi tìm thấy là, phần hay được trích dẫn nhất khi nói về qui luật Moore, như đã được ghi ở trên, nằm trong phần bài ở cuối trang 2, với tựa đề là “Costs and curves”. Sau đây là toàn bộ nội dung bằng tiếng Anh của đoạn văn đó.

Reduced cost is one of the big attractions of integrated electronics, and the cost advantage continues to increase as the technology evolves toward the production of larger and larger circuit functions on a single semiconductor substrate. For simple circuits, the cost per component is nearly inversely proportional to the number of components, the result of the equivalent piece of semiconductor in the equivalent package containing more components. But as components are added, decreased yields more than compensate for the increased complexity, tending to raise the cost per component. Thus there is a minimum cost at any given time in the evolution of the technology. At present, it is reached when 50 components are used per circuit. But the minimum is rising rapidly while the entire cost curve is falling (see graph below). If we look ahead five years, a plot of costs suggests that the minimum cost per component might be expected in circuits with about 1,000 components per circuit (providing such circuit functions can be produced in moderate quantities.) In 1970, the manufacturing cost per component can be expected to be only a tenth of the present cost.

The complexity for minimum component costs has increased at a rate of roughly a factor of two per year (see graph on next page). Certainly over the short term this rate can be expected to continue, if not to increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years. That means by 1975, the number of components per integrated circuit for minimum cost will be 65,000.

I believe that such a large circuit can be built on a single wafer.

Phần đầu của đoạn văn trên đây cho chúng ta thấy là không phải bây giờ người ta mới quan tâm đến chuyện hạ giá thành sản phẩm trong ngành điện tử tích hợp. Từ suốt hơn 40 năm về trước cho đến ngày nay, việc làm giảm phí tổn sản xuất đã được thực hiện theo hướng ngày càng có nhiều mạch điện tử được đặt trên cùng một thiết bị bán dẫn đơn lẻ. Điều này là khả thi do, theo Moore, chi phí ứng với mỗi thành phần (điện tử) tỷ lệ nghịch với số lượng các thành phần đặt trên cùng một thiết bị. Kiểu tương quan tỷ lệ nghịch này có rất nhiều trong các ngành sản xuất, chứ không phải chỉ trong ngành điện tử, theo kiểu khi sản xuất, nếu một mặt hàng được làm ra với một khối lượng lớn, thì rất nhiều khả năng là giá thành cho mặt hàng đó sẽ giảm đi rất nhiều. Nói nôm na là cái gì khan hiếm thì tự nhiên sẽ trở nên đắt đỏ.

Phần khó hiểu trong đoạn văn đối với tôi là thế nào là “minimum cost” và “the comlexity for minimum component costs”.

Sau khi loay hoay tìm kiếm trên net, tôi biết được là trong ngành điện tử bán dẫn, nhất là đối với dân thiết kế chip như Intel, “complexity” có nghĩa là “số lượng các transistor trên mỗi chip”, còn “component cost” hàm ý “chi phí cho mỗi transistor”. Vậy phần tô màu xanh dương ở trên có thể tạm dịch sang tiếng Việt ở mức độ dễ hiểu hơn theo ý tôi là:

Số lượng các transistor trên mỗi chip cho phép dẫn đến chi phí thấp nhất ứng với từng transistor đã và đang tăng lên với mức độ gấp đôi sau từng năm một.

Nghe có vẻ dễ hiểu hơn nhiều rồi phải không các bạn. Tuy nhiên tại sao “số lượng transistor” mà nhà sản xuất có thể đặt lên từng chip lại liên quan đến “chi phí thất nhất” ứng với từng transistor, và từ đó rõ ràng ảnh hưởng đến giá thành của từng con chip trên thị trường? Rõ ràng là nếu lập luận theo kiểu tôi nói ở trên, càng đặt nhiều transistor lên một chip thì giá thành của từng transistor càng rẻ chứ có sao đâu mà phải quan tâm đến “chi phí thấp nhất”. Để trả lời cho câu hỏi này, chúng ta cần phải nhìn lại các công đoạn của quá trình thiết kế và chế tạo chip trong ngành bán dẫn.

Tôi sẽ tiếp tục chủ đề này ở phần 2 của bài.

Bài đầu tiên!

Chào mừng các bạn đã đến với blog “Xử lý song song”.

Như với tất cả mọi thứ mở đầu khác, tôi rất phấn khích khi ngồi gõ những dòng này để khai trương blog. Tôi còn phấn khởi hơn nữa khi đã và đang tận mắt nhìn thấy những thay đổi gần đây trong thế giới điện toán song song, vốn một thời được xem là quí tộc, viễn vông, tốn kém và đầy thất vọng trong lĩnh vực khoa học máy tính.

Trong blog này tôi muốn trao đổi với các bạn những vấn đề lý thú về xử lý song song trên máy tính. Các mục thường xuyên được blog sẽ bao gồm:

Sự kiện: trong mục này tôi sẽ cố gắng cập nhật các sự kiện quan trọng trong thế giới điện toán song song, cũng như ảnh hưởng của nó đối với cuộc sống hiện tại và tương lai.

Công nghệ & Nhân vật: mục này được giành để giới thiệu các bậc thầy trong lĩnh vực xử lý song song, cả về lý thuyết lẫn ứng dụng. Đối với tôi, thật là thú vị khi có dịp tìm hiểu về những người đang đứng sau các thành tựu công nghệ góp phần làm thay đổi cả thế giới điện toán ngày nay.

Tài liệu tham khảo: ở đây mọi người có thể tìm thấy những tài liệu đáng “ngâm cứu”, bao gồm các bài báo chuyên đề, sách, trang web, blog, diễn đàn có giá trị.

Các bài viết trao đổi về kỹ thuật lập trình song song trên các kiến trúc đa lõi, phần lớn tập trung vào kiến trúc của Intel và NVIDIA. Những bài này sẽ được chia ra làm bốn loại như dưới đây để tiện cho việc phân loại và tham khảo:

  • Kỹ thuật lập trình: thảo luận về các cách lập trình để đạt được một tác vụ cụ thể nào đó một cách hiệu quả, ví dụ như “làm thế nào để sử dụng hiệu quả hàm cudaMemcpy(.)?”.
  • Thuật toán song song: thảo luận về các cách chuyển đổi các thuật toán tuần tự thông thường sang dạng song song, ví dụ như “cài đặt phép nhân ma trận theo kiểu song song” chẳng hạn.
  • Giới thiệu các công cụ hỗ trợ lập trình song song bao gồm công cụ gỡ rối, thư viện API nâng cao, …
  • Giới thiệu các kiến trúc phần cứng hỗ trợ lập trình song song, ví dụ kiến trúc đa lõi của Intel, kiến trúc Tesla của NVIDIA.

Các bài viết trao đổi cách học và truyền đạt kỹ năng lập trình song song một cách nhanh chóng, hiệu quả.

Hy vọng là tất cả những ai ghé thăm blog này đều sẽ tìm được những điều lý thú cho riêng mình.

Dành cho game thủ – NVIDIA GeForce PhysX – Phần 3

Ageia – PhysX – NVIDIA: Sự kết hợp có lợi cho game thủ?

Thật ra cho đến năm 2007, chỉ còn lại có hai công ty dẫn đầu về mô phỏng vật lý trong game trên thế giới là Havok và Ageia. Lúc đầu cả NVIDIA và AMD đều đánh giá thấp khả năng PhysX của Ageia, nên dồn sức vào việt phát triển các hỗ trợ cho game trên chip của mình dựa vào Havok FX. Sau khi Intel mua lại Havok vào ngày 14 tháng 9 năm 2007, với cái giá được đồn đại rất nhiều là 110 triệu đô la Mỹ, đột nhiên Ageia trở thành công ty còn lại độc lập duy nhất làm công nghệ tính toán vật lý trên chip đồ họa thu hút cả NVIDIA và AMD. Cuối cùng NVIDIA đã mua lại Ageia vào ngày 13 tháng 2 năm 2008. Ngay sau khi hợp đồng mua bán này được hoàn tất, NVIDIA đã nhanh chóng triển khai việc chuyển mã nguồn PhysX của Ageia sang CUDA để chạy được trên các thế hệ chip GeForce của mình, với sự giúp đỡ từ những kỹ sư tài năng của Ageia, bao gồm cả Manju Hedge, CEO của Ageia, giờ đã trở thành phó chủ tịch phụ trách công nghệ PhysX của NVIDIA. Kết quả là giờ đây những người yêu game như tôi và các bạn có thể thưởng thức các hiệu ứng do PhysX mang lại trên các card đồ họa NVIDIA GeForce 8 trở lên.

Trong phần 3 này, tôi muốn điểm lại một vài yếu tố quan trọng trong sự kết hợp hai công ty tài năng về đồ họa là NVIDIA và Ageia thông qua điểm nhấn quan trọng PhysX. Trên quan điểm của riêng cá nhân mình, tôi cho là những bài học mà Ageia đã phải đối mặt và vượt qua là hết sức quan trọng cho tất cả những công ty dạng khởi nghiệp (start-ups) với các ý tưởng công nghệ độc đáo, mà những người sáng lập nên nghĩ là chúng có thể giúp họ thay đổi được thế giới.

Ageia – Giai đoạn 2002 – 2007

Năm 2002 có một công ty rất trẻ trung được thành lập ở vùng Santa Clara, bang California. Điểm đặc biệt ở công ty này là:

Họ cố gắng làm một việc cực kỳ khó, đó là mang công nghệ tính toán vật lý vào thị trường game đầy tính cạnh tranh khốc liệt.

Giải pháp họ đề nghị bao gồm cả phần mềm (PhysX SDK) và phần cứng (PPU add-in card). Ở khía cạnh phần mềm, trước họ đã có một công ty của Ireland ở vùng Dublin, gọi là Havok, cho ra đời phiên bản Havok SDK đầu tiên từ năm 2000, được sử dụng chẳng hạn trong trò Half-Life 2, hay Dead Rising. Về mặt phần cứng, họ là những người đầu tiên trên thế giới cung cấp phần cứng chuyên dụng cho vật lý trong game qua bộ xử lý vật lý PPU (Physics Processing Unit).

Chúng ta hãy quan sát kỹ hơn về cái chip PPU này qua hình chụp dưới đây.

Chip PPU của Ageia - Hình chụp của The Tech Report

Chip PPU của Ageia - Hình chụp của The Tech Report

Chip này chính là trái tim của card gia tốc vật lý do Ageia kết hợp với các nhà sản xuất bo mạch nổi tiếng là BFG và ASUS đưa ra thị trường vào khoảng đầu tháng Năm 2006, như trong hình dưới đây.

Chip PPU này có các đặc điểm chính sau đây:

  • Là thiết bị dựa trên kiến trúc MIPS đa lõi với sự tích hợp các hệ thống con bộ nhớ và phần cứng gia tốc vật lý
  • Chứa 134 triệu transistor trên một diện tích 182 mm^2.
  • Dung lượng bộ nhớ là 128MB GDDR3 với giao diện 128-bit.
  • Giao tiếp với bo mạch chính thông qua giao diện PCI.
  • Khả năng dò đụng độ khối cầu: 530 triệu/giây (khả năng tối đa)
  • Khả năng dò đụng độ lồi – lõm: 530,000/giây (khả năng tối đa)
  • Băng thông chỉ thị ở mức cao nhất: 20 tỷ chỉ thị/giây
  • Mức điện năng tiêu thụ: 30 W
  • Được chế tạo bởi TSMC với công nghệ 130 nm
  • Giá bán khoảng từ 100-250 đô la Mỹ

Vai trò của chip này trong một hệ thống máy tính được minh họa bởi hình vẽ sau:

Mối quan hệ giữa chip PPU của Ageia với CPU & GPU

Mối quan hệ giữa chip PPU của Ageia với CPU & GPU

Những gì chip này mang lại được về mặt tính toán vật lý bao gồm:

Kiến trúc vật lý song song ở mức cực lớn: Với khả năng này, chúng ta có thể tiến hành các tính toán vật lý với phạm vi lớn dựa trên bộ xử lý đa lõi được tinh chỉnh ở mức cao.

Kỹ thuật dò đụng độ liên tục đa năng: Với khả năng này, chúng ta có thể tạo ra các game với toàn bộ môi trường có tính tương tác cao thông qua một lượng lớn các đụng độ và phản ứng qua lại giữa các đối tượng di chuyển hết sức nhanh chóng.

Công nghệ chất điểm thông minh kiểu vật lý: Với khả năng này, chúng ta có thể tiến hành tính toán hàng ngàn hạt chất điểm thông minh rất thực cho các yếu tố thể tích, độ đậm đặc, và áp suất cho các dòng chảy nén được, khói, mưa, cũng như các mảnh vỡ vụn trong các cảnh game.

Hệ thống vật lý giành cho các đối tượng phức tạp: với khả năng này, chúng ta có thể biểu diễn các đối tượng và tương tác giữa chúng giống với đời thực hơn.

Công nghệ độ tin cậy cao về địa hình co giãn được: Với khả năng này, chúng ta có thể tạo ra các môi trường cảnh quan giống thực tế trong game.

Với cả thế mạnh về phần cứng và phần mềm như vậy, Ageia đã hứa hẹn một tương lai hết sức tươi sáng. Tuy nhiên vấn đề mà Ageia gặp phải, đó là sự chấp nhận về mặt công nghiệp. Với giá thành thiết bị phần cứng khá cao so với thời điểm 2006, cộng với sự thiếu vắng của các ứng dụng kiểu “bom tấn” đi kèm, Ageia đã ở vào những thời điểm hết sức khó khăn. Họ đã cố gắng rất nhiều để cố gắng mở rộng nền tảng PhysX tới nhiều hơn nữa các nhà phát triển game trên thế giới. Bộ công cụ phát triển PhysX SDK đã được phát hành đến tận tay các nhà phát triển game cho máy Playstation 3 của Sony vào đầu năm 2006, và hàng loạt các công ty khác vào dịp cuối năm, gồm cả BioWare. Mọi thứ đã thật sự trở nên nóng bỏng trong năm 2007, với Unreal Tournament 3, rồi Cell Factor: Revolution, và cả Warmonger lần lượt ra đời và game thủ có thể down về chơi miễn phí.

Ageia – Từ 2008 trở đi – Với NVIDIA

Mặc dù ý tưởng tiên phong của Ageia về chip gia tốc vật lý cho game là hết sức thú vị, các bạn hãy thử nghĩ xem, để hỗ trợ PhysX trên một diện rộng, chúng ta cần phải có gì trong tay, nếu đứng ở vị trí của Ageia năm ngoái 2007? Rõ ràng chúng ta cần có một lượng khách hàng lớn để nhận được sự chấp nhận về mặt công nghệ, từ đó khiến các nhà làm game phải bỏ thêm tiền cài đặt các tính năng hấp dẫn mới, để “chèn” PhysX vào các game của họ. Để cài đặt được các tính năng như vậy đòi hỏi rất nhiều thời gian của lập trình viên, có nghĩa là sẽ ảnh hưởng rất nhiều đến hầu bao của các công ty làm game khắp nơi trên thế giới. Điều này chỉ xảy ra khi Ageia có một lượng khách hàng cực lớn.

Trong khi đó, NVIDIA, với mạng lưới kinh khủng các nhà phát triển game đang tham gia trong chương trình “The Way It’s Mean To be Played” của mình, và hơn 70 triệu GPU khả lập trình được theo kiểu công nghệ CUDA, sẽ dễ dàng thuyết phục mọi người chấp nhận PhysX hơn.

Có lẻ nhìn thấy cơ hội khổng lồ đó, NVIDIA đã tiến hành những bước đi quyết định thúc đẩy sự kết hợp hoàn hảo giữa GeForce và PhysX thông qua cầu nối CUDA. Kết quả là giờ đây mọi người có thể nhìn thấy biểu tượng sau đây ở khắp nơi.

Sơ đồ dưới đây được cung cấp bởi HotHardware cho chúng ta một cách so sánh về cách thức triển khai công nghệ tính toán vật lý trong game giữa NVIDIA, AMD và Intel.

Với sơ đồ này, chúng ta có thể thấy là giải pháp hiện giờ trên các chip Intel và AMD là sử dụng Havok FX cho hỗ trợ vật lý trong game, còn NVIDIA sử dụng phiên bản PhysX từ Ageia. Phiên bản NVIDIA PhysX có cấu trúc cơ bản như sau.

Trong sơ đồ kiến trúc công nghệ PhysX nói trên của NVIDIA, tôi thích thú nhất là phần “Game Designer Scalable”, là nơi các nhà phát triển game sẽ có dịp thi thố tất cả năng lực sáng tạo của mình, và với hơn 150 tựa game đã và sẽ ra đời trong một ngày không xa, chúng ta hy vọng sẽ có dịp thưởng thức rất nhiều game “ác liệt” trong thời gian tới. Hy vọng tôi sẽ có nhiều thứ để bàn tiếp ở blog này vào lúc đó.

Cuối cùng, bài học kinh nghiệm mà tôi tự rút ra được là:

  • Nếu chúng ta ở phía các công ty khởi nghiệp: Nếu chúng ta tự tin là ý tưởng của mình có thể làm thay đổi tương lai thế giới, và chúng ta cam kết sẽ thực hiện nó đến cùng, vậy thì hãy tận dụng hết tất cả các cơ hội có thể có, kể cả “bán mình”, như mọi người vẫn thường nói. Vì nếu chúng ta chọn đúng công ty để trao ý tưởng của mình, người hưởng lợi cuối cùng vẫn là nhân loại, và chúng ta vẫn có thể tiếp tục thực hiện giấc mơ của mình trong một môi trường mới, với sự hỗ trợ mới, và do vậy với nhiều hứa hẹn thành công hơn nữa.
  • Nếu chúng ta ở phía các công ty lớn: Với lợi thế là người đi trước, chúng ta nên đi tiên phong trong việc đón nhận các ý tưởng mới từ những người khác, qua sự hỗ trợ từ ít đến nhiều về mặt tài chính, kỹ thuật, … Làm như vậy chúng ta đã góp phần rất lớn trong việc đưa thế giới này ngày một trở nên tốt đẹp hơn.