Jensen Huang, CUDA và sự trỗi dậy của NVIDIA
Giới thiệu
Khi Jensen Huang đồng sáng lập NVIDIA vào năm 1993, mục tiêu của công ty là đưa đồ họa 3D vào trò chơi máy tính và đa phương tiện. Ngày nay, bộ xử lý của chính công ty đó được dùng để huấn luyện và vận hành các mô hình trí tuệ nhân tạo. Để hiểu sự chuyển dịch đó, chúng ta nên bắt đầu từ nền tảng kỹ thuật của Huang và nền tảng phần mềm mà NVIDIA xây dựng, CUDA. [1] [1]
1. Sự nghiệp kỹ thuật của Huang
Sinh ra ở Đài Loan, Huang lấy bằng cử nhân kỹ thuật điện tại Đại học Bang Oregon năm 1984. Ông làm kỹ sư thiết kế vi xử lý tại AMD từ 1984 đến 1985, rồi giữ nhiều vị trí tại LSI Logic từ 1985 đến 1993. Ông trở thành giám đốc của Coreware, bộ phận chịu trách nhiệm về chiến lược của công ty nhằm tích hợp nhiều thành phần của một hệ thống máy tính lên một chip duy nhất. Trong thời gian đó, ông cũng lấy bằng thạc sĩ kỹ thuật điện tại Đại học Stanford năm 1992. [2] [1]
Ngày 5 tháng 4 năm 1993, Huang thành lập NVIDIA cùng với Chris Malachowsky và Curtis Priem. Ông giữ chức chủ tịch, giám đốc điều hành và thành viên hội đồng quản trị kể từ khi công ty bắt đầu hoạt động. Năm 1999, NVIDIA tiến hành phát hành cổ phiếu lần đầu ra công chúng. Cùng năm đó, công ty giới thiệu GeForce 256, một cột mốc trong lịch sử các đơn vị xử lý đồ họa (GPU) của công ty. [1] [1]
2. CUDA là gì?
NVIDIA giới thiệu CUDA năm 2006 như một nền tảng phần mềm và mô hình lập trình để thực hiện nhiều phép tính song song trên GPU của mình. GPU là phần cứng thực hiện các phép tính. CUDA cung cấp các công cụ lập trình mà nhà phát triển dùng để chạy các phép tính của họ trên phần cứng đó. Điều này mở ra các GPU vốn được chế tạo cho đồ họa cho các ứng dụng trong nghiên cứu khoa học, điện toán hiệu năng cao và trí tuệ nhân tạo. [1] [1]
Hãy tưởng tượng làm sáng một hình ảnh có một triệu điểm ảnh. Phép tính cho một điểm ảnh có thể tiến hành độc lập với các điểm khác. Một chương trình CUDA có thể chia công việc đó thành các phép tính nhỏ hơn và chạy chúng trên GPU. Một hàm chạy trên GPU được gọi là kernel. Nhiều luồng thực thi nó song song, mỗi luồng làm việc trên phần dữ liệu được giao. Cùng nguyên tắc chia công việc thành các phần có thể chạy song song áp dụng cho các phép tính AI như phép nhân ma trận lớn. [3] [1]
3. CUDA đã giúp ngành AI như thế nào
Khi huấn luyện một mạng nơ-ron, trước tiên mô hình đưa ra dự đoán. Quá trình huấn luyện đo sai số và cập nhật các tham số của mô hình. Quá trình này lặp lại nhiều lần. GPU tăng tốc các phép toán như nhân ma trận, giúp các nhà nghiên cứu có thời gian chạy nhiều thí nghiệm hơn và làm cho việc huấn luyện các mô hình lớn hơn trở nên khả thi. GPU cũng được dùng sau huấn luyện, trong giai đoạn suy luận, khi một mô hình như mô hình ngôn ngữ tạo ra câu trả lời cho người dùng. [4] [1]
AlexNet đã đưa ra một minh chứng thực tế vào năm 2012. Được huấn luyện trên GPU NVIDIA, nó đã thắng cuộc thi phân loại hình ảnh ImageNet. Hiệu năng của nó cho thấy các bộ xử lý đồ họa vốn dùng cho trò chơi máy tính cũng có thể huấn luyện mô hình nhận dạng hình ảnh. [1] [1]
4. CUDA đã mang lại cho NVIDIA lợi thế bền vững như thế nào
NVIDIA đã xây dựng các thư viện và công cụ tối ưu cho những phép tính mà nhà phát triển thường xuyên cần. cuBLAS tăng tốc các phép toán ma trận, cuDNN hỗ trợ các phép toán mạng nơ-ron phổ biến, NCCL xử lý giao tiếp giữa các GPU, và TensorRT giúp các mô hình đã huấn luyện chạy nhanh hơn. Các framework như PyTorch hỗ trợ CUDA, nên nhà phát triển có thể dùng những khả năng này mà không phải viết từng phép toán GPU từ đầu. [5] [1]
Kết luận
Hệ sinh thái phần mềm đó đã củng cố mảng kinh doanh phần cứng của NVIDIA. Một nhóm có thể đi từ một thí nghiệm nhỏ đến một hệ thống chạy trên nhiều GPU trong khi vẫn tiếp tục dùng phần mềm và công cụ quen thuộc. Việc đổi phần cứng có thể đòi hỏi nhóm xem xét lại các phụ thuộc CUDA của mình, điều chỉnh một số phần của phần mềm và kiểm tra hiệu năng lại. Bằng cách đầu tư vào phần mềm song song với phần cứng trong nhiều năm, NVIDIA đã có sẵn các công cụ cho những nhà phát triển vốn đã biết cách dùng chúng khi nhu cầu điện toán AI tăng lên. [1] [1]
Tài liệu tham khảo
- https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
- https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
- https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
- https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
- https://developer.nvidia.com/machine-learning
Câu hỏi về Jensen Huang, CUDA và sự trỗi dậy của NVIDIA
CUDA là gì và tại sao NVIDIA xây dựng nó?
CUDA là một nền tảng phần mềm và mô hình lập trình do NVIDIA giới thiệu năm 2006 để chạy nhiều phép tính song song trên GPU của mình. GPU là phần cứng; CUDA cung cấp các công cụ lập trình, mở ra phần cứng đồ họa cho nghiên cứu khoa học, điện toán hiệu năng cao và AI.
CUDA đã giúp ngành AI như thế nào?
Huấn luyện một mạng nơ-ron nghĩa là lặp lại nhiều lần việc dự đoán, đo sai số và cập nhật tham số. GPU tăng tốc các phép toán như nhân ma trận, cho phép nhà nghiên cứu chạy nhiều thí nghiệm hơn và huấn luyện các mô hình lớn hơn. AlexNet, được huấn luyện trên GPU NVIDIA, đã chứng minh điều này khi thắng cuộc thi ImageNet năm 2012.
Tại sao CUDA mang lại cho NVIDIA lợi thế bền vững?
NVIDIA đã xây dựng các thư viện tối ưu mà nhà phát triển thường cần – cuBLAS cho các phép toán ma trận, cuDNN cho các phép toán mạng nơ-ron, NCCL cho giao tiếp đa GPU và TensorRT cho suy luận nhanh hơn – và các framework như PyTorch hỗ trợ CUDA, nên các nhóm có thể mở rộng từ một thí nghiệm nhỏ lên nhiều GPU mà không phải viết lại phần mềm của mình.
Powered By K7
