Chủ Nhật, 19 tháng 3, 2023

Nvidia giành thị phần trí thông minh nhân tạo

thập niên 1990 Nvidia chiến thắng thương trường sinh tồn thẻ đồ hoạ thì thập niên 2000 công ty hướng đến một loại vi xử lý mới: mở khoá thị trường hàng tỷ đôla

GeForce
năm 1999 Nvidia ra mắt thẻ đồ hoạ GeForce 256 là bộ xử lý có 17 triệu bóng bán dẫn và được gia công bởi TSMC: gọi đây là đơn vị xử lý đồ hoạ [GPU - graphic process unit] đầu tiên
trong buổi ra mắt, Nvidia định nghĩa thuật ngữ GPU là "một bộ xử lý một chip duy nhất với những động cơ để biến đổi, ánh sáng, triangle setup/clip và render, có khả năng xử lý tối thiểu 10 triệu đa giác mỗi giây"

Đường ống đồ hoạ: hình học
nhiệm vụ của một hệ thống đồ hoạ 3 chiều là biến một cảnh thành một hình ảnh: 60 nhịp mỗi giây, có thể hơn, và mượt mà nhất có thể
thuở đầu, hệ thống đồ hoạ thời gian thực sẽ xé vụn mọi thứ thành những tam giác: những hình vuông, tứ giác, những miếng [patch] đường cong - đều thành tam giác
bắt đầu đường ống [pipeline] ta có một đám dữ liệu toạ độ 3 chiều và mô hình 3 chiều hoặc dữ liệu hình thù
trước tiên, đường ống sẽ tiêu hoá những toạ độ 3 chiều ấy và biến thành những toạ độ cửa sổ 2 chiều: đây là "công đoạn hình học" - có thể chia nhỏ ra 2 công đoạn nhỏ hơn
đầu tiên là "biến đổi [transform] và ánh sáng" và thứ hai là "sắp đặt và cắt xén tam giác"
bước biến đổi và ánh sáng: đường ống cần điều chỉnh dữ liệu các toạ độ 3 chiều và áp dụng những hiệu ứng ánh sáng để suy xét đến góc nhìn cá nhân riêng của người dùng
bước sắp đặt và cắt tam giác: ta xử lý dữ liệu toạ độ thành cái mà động cơ render có thể render được - đặc biệt cần thiết trong những cảnh mà nhiều vật thể 3 chiều bị đè [overlap] lên nhau - những vật thể bị đè sẽ cần được cắt xén

Ma trận
khi đường ống [pipeline] đồ hoạ đang xử lý và thao túng những toạ độ này, đường ống sử dụng một cấu trúc toán học là "ma trận"
ta có thể thực hiện những phép tinh trên những ma trận này: như phép cộng và phép nhân - theo những cách được định nghĩa sẵn mà không cần biết chính xác cách những ma trận đóng vai trò [figure] vào thao túng những toạ độ 3 chiều bên trong tiến trình đồ hoạ tổng thể
đường ống đồ hoạ và do đó thẻ đồ hoạ sẽ được tối ưu hoá để xử lý và chạy những phép toán lên những ma trận ấy

Đường ống đồ hoạ: render
công đoạn render: đường ống sẽ khoả lấp không gian điểm ảnh [pixel] giữa những toạ độ 2 chiều đã được dịch bằng những điểm ảnh [pixel] đại diện bề mặt của vật thể
động cơ sắp đặt [setup engine] sẽ chuyển qua cho động cơ render tất cả thông tin về màu sắc và kết cấu [texture] của vật thể ở một điểm [spot] cụ thể cũng như cách thức những thông tin ấy bị ảnh hưởng bởi điều kiện ánh sáng và góc nhìn
kết quả cuối sẽ được gửi về màn hình để chiếu lên cho người dùng
năm 1996 thẻ đồ hoạ của Nvidia mới chỉ xử lý một công đoạn phụ của đường ống đồ hoạ: công đoạn render - CPU xử lý phần còn lại
việc render thì đơn giản và lặp lại: nhận những toạ độ của những đường thẳng của những tam giác, sau đó vẽ những đường thẳng đúng với màu sắc - lặp đi lặp lại

Tiến bộ và leo lên chuỗi cung
thẻ đồ hoạ Nvidia bắt đầu làm thêm việc của đường ống đồ hoạ: năm 1997 những thẻ Nvidia đảm nhận sắp đặt và cắt xén tam giác - công đoạn sẽ tính toán những toạ độ tam giác cho công đoạn render xử lý
trước đó, CPU làm việc này nhưng tác vụ lặp lại và đã trở thành một nút nghẽn cổ chai trong đường ống: được giải phóng không cần làm việc sắp đặt dữ liệu toạ độ tam giác nên CPU có thể tập trung vào công đoạn hình học
CPU làm phần việc này khá tốt: ném ra nhiều tam giác hơn cho thẻ đồ hoạ có thể xử lý - khiến thẻ đồ hoạ trở thành nút nghẽn cổ chai trong đường ống

Song song
các kỹ sư Nvidia đưa ra giải pháp cho nút nghẽn cổ chai là xử lý song song [parallelism]: chuyển đổi [convert] công việc thành một đường ống những bước tuần tự - sau đó bổ sung nhiều đường ống giống nhau và sắp hàng những đường ống ấy để chạy song song
tác vụ đồ hoạ 3 chiều là lý tưởng cho xử lý song song vì công việc lặp lại và độc lập với dữ liệu: tốc độ xử lý của hệ thống gần như tỷ lệ thuận với số đường ống - với GPU là những lõi xử lý
cơ hội để Nvidia tiếm lấy phần cuối cùng của đường ống đồ hoạ: tính toán biến đổi [transform] và ánh sáng - với thẻ GeForce 256 thì Nvidia đã thành công giao toàn bộ đường ống đồ hoạ cho một chip duy nhất đảm nhận, không cần đưa đẩy dữ liệu qua lại với CPU nữa

GPU lập trình được
thế hệ GPU GeForce 256 nổi tiếng chạy cái gọi là những đường ống "hàm số cố định" mà một khi lập trình viên đã gửi dữ liệu cho GPU thì dữ liệu sẽ không thể chỉnh sửa nữa
tính năng "hàm số cố định" là để ngăn lập trình viên không thể tận dụng những chức năng mới trong những giao diện lập trình ứng dụng đồ hoạ và giao diện lập trình ứng dụng khác
năm 2001 chiếc GeForce 3 ra mắt đã giới thiệu khả năng tuỳ chỉnh bổ sung vào đường ống: Nvidia xé vụn đường ống đồ hoạ cố định - lập trình viên có thể gửi dữ liệu cho những chương trình tuỳ chỉnh [customized] gọi tên là những trình shader
những trình shader vectơ sẽ thay thế công đoạn biến đổi và ánh sáng của đường ống
những trình shader điểm ảnh [pixel] sẽ hoạt động ở cấp độ điểm ảnh và giúp render hình ảnh
những lập trình viên sẽ có thể hoán đổi vẻ ngoài giả tạo nhàm chán cũ với một bề mặt sinh động [organic] hơn
những trình shader ấy được viết bằng ngôn ngữ cấp thấp và có những hạn chế: nhưng cũng mở cửa cho những khả năng lập trình thông dụng sau đó - ra mắt năm 2006

Cuda
năm 2006 Nvidia ra mắt loạt GeForce 8 cũng như một khung phần mềm độc quyền mới: kiến trúc thiết bị điện toán thống nhất [CUDA - compute unified device architecture] có một bộ những thư viện, trình gỡ lỗi [debug] và những giao diện lập trình ứng dụng
với CUDA thì đường ống đồ hoạ hàm số cố định cũ đã hoàn toàn bỏ đ: GPU không còn chỉ là một mảnh phần cứng đồ hoạ chuyên dụng - với những bit kết cấu, những bit ánh sáng và những bit tam giác nữa
cùng với OpenCL mã nguồn mở thì CUDA đã biến hàng triệu GPU hàng hoá từ những cỗ máy game thành những vi xử lý thông dụng: mỗi máy được trang bị hàng nghìn lõi - có thể thao túng song song lượng dữ liệu lớn
so với bộ xử lý thông dụng CPU có ít lõi hơn nhiều và tối đa chỉ chạy những tác vụ cần tuần tự [sequential]

GPU tăng trưởng hiệu năng
gần đây, hiệu năng GPU có thể tăng quy mô nhanh hơn nhiều so với CPU vì một số lý do: đầu tiên, Nvidia hưởng lợi từ tiến bộ của TSMC trong thương mại hoá những nút tiến trình mới
vì sức mạnh xử lý của GPU tỷ lệ thuận với số lõi xử lý, Nvidia có thể tăng quy mô sức mạnh xử lý của GPU bằng cách tăng quy mô số bóng bán dẫn: GPU mới của Nvidia có hơn 20 tỷ bóng bán dẫn
thứ hai là Nvidia có thể tăng quy mô những tần số: năm 2016 những GPU Pascal của Nvidia lần đầu tiên sử dụng nút tiến trình 16 nanomet của TSMC - nút ấy là lần đầu tiên TSMC sử dụng bóng bán dẫn trường hiệu ứng có vây [FinFET - fin field effect transistor] 3 chiều mới
thứ ba Nvidia nhét thêm sức mạnh của GPU đồng thời hưởng lợi từ những xu hướng cải thiện tỷ lệ điện năng tiêu thụ mỗi bóng bán dẫn: luật quy mô này là Dennard Scaling - nghĩa là những chip mới sẽ tiêu thụ cùng lượng điện năng mặc dù tăng sô bóng bán dẫn trên cùng diện tích không gian
Dennard Scaling đã chậm lại từ năm 2006 nhưng xu thế vẫn duy trì đây đó và giúp GPU của Nvidia mạnh mẽ hơn

Những mạng lưới thần kinh nhân tạo
thứ tư là Nvidia tìm được nhu cầu thị trường mới cho những GPU mạnh, không liên quan đến thị trường trò chơi điện tử
ImageNet là bộ dữ liệu lớn có 1 triệu hình ảnh được Stanford lưu trữ: từ năm 2010 họ tổ chức cuộc thi giữa nhiều mô hình thị giác máy tính để tìm ra ai có trình phân loại [classifier] hình ảnh tốt nhất - nhận dạng cái gì trong hình như là dâu tây, việt quất hay chim bồ câu
năm 2010 và 2011 những mô hình xuất sắc nhất đã sử dụng những mô hình thị giác máy tính được-thiét-kế-thủ-công [hand-engineer] với tỷ lệ lỗi 25% trong số 5 trình xuất sắc nhất: trong khi một con người chỉ cần chút huấn luyện là đã đạt tỷ lệ lỗi 5%
năm 2012 ba nghiên cứu sinh Alex Krizhevsky, Ilya Sutskever và Geoffrey Hinton đã tham dự cuộc thi với một mạng lưới thần kinh nhân tạo sâu [deep neural network] được huấn luyện hơn 5-6 ngày trên 2 GPU GTX 580 3GB và giành giải nhất với tỷ lệ lỗi 15%
kể từ đó, tỷ lệ lỗi của mô hình giành chiến thắng đã tụt xuống mức thường xuyên tốt hơn một con người được huấn luyện
năm 2016 học sâu trở thành chính thống khi AlphaGo của Deepmind giành chiến thắng 5 game đấu cờ vây với người 18 lần vô địch thế giới Lee Sedol

Toán
một mạng lưới những nhân tố xử lý đơn giản để mô hình những quan hệ phức tạp giữa nhiều biến số đầu vào: gồm nhiều 'nơ ron' nhỏ - mỗi nơ ron nhận nhiều input, áp dụng trọng số [weight] để ra output
mạng lưới có thể có nhiều lớp những nơ ron này: tất cả sẽ truyền thông tin đến nơ ron khác - thiết kế những nơ ron này theo những cách khác nhau sẽ cho kết quả khác nhau
trên thực tế, người ta đại diện những lớp nơ ron của một mạng lưới: sử dụng những ma trận mà input và trọng số căn bản chỉ là những con số bên trong một ma trận lớn - tận dụng thế mạnh của GPU trong xử lý ma trận để huấn luyện những mạng lưới nhanh hơn trước đây

GPU và mạng lưới thần kinh
mạng lưới thần kinh nhân tạo là ý tưởng đã có từ thập niên 1950 nhưng nghiên cứu sinh chưa bao giờ thu được kết quả tốt trước đây: vì lượng quá lớn dữ liệu sẽ cần thiết nếu muốn thu được những kết quả đáng tin cậy
ví dụ trong phim truyền hình Thung lũng Silicon chiếu trên HBO có cảnh huấn luyện một mạng lưới thần kinh nhân tạo cho một ứng dụng di động "không phải bánh mỳ kẹp xúc xích": đơn giản thế thôi nhưng các nhà phát triển đã cần thu thập 3000 bức ảnh chụp bánh mỳ kẹp xúc xích và 147000 bức ảnh chụp những thứ không phải bánh mỳ kẹp xúc xích
nhiều năm nghiên cứu sinh sử dụng CPU để huấn luyện những mạng lưới thần kinh nhân tạo: phi thực tiễn vì tốn thời gian - CPU không được thiết kế để xử lý song song, có quá ít lõi cho tác vụ ấy
nữa, CPU có hạn chế số lượng những cache bộ nhớ: huấn luyện thần kinh nhân tạo thì ngốn [intensive] bộ nhớ - cần lưu trữ dữ liệu input, tham số... khi input chạy qua những lớp của mạng lưới
năm 2012 huấn luyện một mạng lưới với 128 hình ảnh, sử dụng hai CPU 10 lõi sẽ mất 124 giây: nhân lên cho 1 triệu hình ảnh hoặc nhiều hơn thì cần 11 ngày để huấn luyện một mô hình học máy
mặt khác GPU có thể làm được nhanh gấp 8.5 lần CPU: một triệu hình ảnh sẽ mất 1 ngày - một số trường hợp cải thiện tốc độ có thể lên đến nhanh hơn gấp 40 lần
nhiều năm, các nhà khoa học đã nhận thấy ứng dụng tiềm năng này khi sức mạnh của GPU, đo lường bằng tốc độ thực hiện số phép toán số thực dấu phẩy động mỗi giây [Flops - floating point operation per second] tăng quy mô lớn
nhưng trước khi CUDA ra mắt năm 2006 thì chưa tiện lập trình những phép toán ấy cho GPU: nghiên cứu sinh phải đặt lọt [fit] mạng lưới thần kinh nhân tạo vào khuôn khổ [confine] những tác vụ đồ hoạ - khó

Tạo doanh thu
ban đầu, máy học giúp máy tính đọc chữ viết tay, nhận dạng hình ảnh và chơi cờ vây: vô dụng - các công ty nhận thấy có thể áp dụng kỹ thuật mới cho những tác vụ mang lợi ích tài chính như xe tự hành, giám sát [moderate] nội dung, tối ưu hoá doanh thu...
những ứng dụng sát thủ ấy đã khích lệ các doanh nghiệp sớm áp dụng công nghệ học sâu vào những mô hình doanh thu: phần lớn việc này được thực hiện trên những GPU của Nvidia và lập trình CUDA
Nvidia đầu tư nguồn lực lớn để phát triển mảng ấy, tin rằng nó sẽ tăng biên lợi nhuận GPU
GPU cao cấp [flagship] sử dụng cho những mạng lưới thần kinh nhân tạo cấp-độ-doanh-nghiệp là chiếc A100 có 54 tỷ bóng bán dẫn và được TSMC gia công, bán cho các trung tâm dữ liệu với giá 20 000 đôla để các trung tâm dữ liệu mở dịch vụ cho thuê phần cứng thông qua điện toán đám mây với giá 33 đôla một giờ
nguồn doanh thu lớn nhất của Nvidia vẫn là GPU tiêu dùng cho trò chơi điện tử và tiền mã hoá crypto nhưng từ năm 2017 doanh thu bán cho các trung tâm dữ liệu cũng tăng trưởng
quý 3 năm 2021 Nvidia kiếm 3.2 tỷ đôla doanh thu game và 2.94 tỷ đôla trung tâm dữ liệu nhưng bán cho các trung tâm dữ liệu thì tăng trưởng 55% một năm so với 42% tăng trưởng hằng năm của game

Cạnh tranh
AMD mua lại ATI sau đó cải tiến loạt sản phẩm GPU riêng và phần mềm điện toán mở Radeon [ROCm - Radeon Open Compute] riêng: hơn CUDA là ROCm được AMD mở mã nguồn - lập trình viên tiếp cận thoải mái hơn với những chi tiết bên trong GPU
mặt khác, nhiều công ty khởi nghiệp đã chào bán những mạch tích hợp chuyên dụng [ASIC - application specific integrated circuit] được thiết kế chỉ cho mục đích học máy: đáng chú ý có Cerebras và Graphcore đã gọi vốn được nhiều triệu đôla từ những doanh nghiệp đầu tư mạo hiểm lớn - tìm cách lấy thị phần học sâu của Nvidia
những công ty khác đã lựa chọn tự làm nội bộ phần cứng học sâu: chủ yếu vì lý do kinh tế hoặc chiến lược - ví dụ Google, Amazon và Tesla

Kết
khi Apple mới ra mắt iPhone, không có kho ứng dụng và những ứng dụng bên thứ ba: Steve Jobs đã hình dung một chiếc điện thoại với số ít những chức năng hạn hẹp - sản phẩm bán chạy nhưng phải đến khi Apple mở phần cứng iPhone cho các nhà phát triển bên ngoài thì mới thành một nền tảng điện toán mạnh mẽ bỏ túi
Nvidia mở cửa GPU lâu hơn Apple nhưng kết quả cũng đột phá: phần cứng mới, sau rốt, đã tiếp sức mạnh cho cuộc cách mạng AI

Không có nhận xét nào:

Đăng nhận xét