Bấy lâu nay AI đã viết toàn bộ mã cho bạn,
nhưng bạn vẫn băn khoăn không biết thực sự nó hoạt động như thế nào, đúng không?
Trong thời đại AI, chúng ta cần những người có thể đưa ra chỉ dẫn công việc chính xác cho AI, kiểm soát và điều phối AI, thay vì bị AI dẫn dắt. Những người như vậy sẽ không bị AI thay thế.
Dù bạn đang lập trình bằng AI hay đang chuẩn bị tìm việc và chuyển việc, hy vọng bạn sẽ trau dồi được năng lực đó qua khóa học này.
Chúng tôi đã đưa vào những nguyên lý GPU được trình bày để dễ hiểu nhất trên thế giới cùng các kiến thức CS cần thiết cho chúng. Chúng tôi sẽ dạy bạn những điều bạn không thể học được ngay cả ở trường đại học và cũng không thể học trong thực tế công việc.
Giúp bạn giao việc cho AI hiệu quả hơn.
Khóa học này giúp bạn hiểu GPU thực sự thực thi mã như thế nào. Chúng tôi giải thích từ nguyên lý cách các luồng được nhóm và vận hành, cũng như vì sao thời gian xử lý có thể chênh lệch hàng chục lần tùy thuộc vào vị trí lưu trữ của các giá trị. Để những nguyên lý đó không chỉ dừng lại ở lời nói, chúng tôi sẽ trình bày trực quan sự khác biệt giữa CPU và GPU, cũng như những thay đổi khi tối ưu hóa, thông qua tìm kiếm vector để tìm ra 5 tài liệu tương đồng nhất trong 1 triệu tài liệu. Trong quá trình đó, bạn cũng sẽ được học các kiến thức CS như bộ nhớ đệm, luồng, cơ chế đồng bộ hóa và số dấu phẩy động. Chúng tôi sẽ dạy bạn những điều không thể học được ở cả trường đại học lẫn môi trường làm việc.
Mã nguồn do AI viết. Việc của bạn là hiểu cách mã nguồn đó hoạt động, nhờ vậy có thể phát triển các tính năng và dịch vụ hiệu năng cao hơn trong thời gian ngắn hơn người khác.
ĐO TRÊN RTX 4090
| Tính toán độ tương đồng trên CPU | 558.83 ms |
| Kernel GPU đầu tiên | 11.736 ms 47,6 lần |
| Nhân tối ưu hóa GPU | 3.237 ms khoảng 173 lần |
Khóa học này phù hợp với những người như sau
Sinh viên đại học phát triển bằng AI
AI có thể tạo ra mã, nhưng không biết máy tính thực thi đoạn mã đó như thế nào.
Dù là bài tập, câu lạc bộ hay dự án tự làm, AI đều có thể viết mã cho bạn. Thế nhưng trong phỏng vấn hay thuyết trình, điều người ta hỏi không phải là sản phẩm đầu ra mà là mức độ hiểu biết. "Tại sao bạn lại triển khai như vậy?", "CPU và GPU khác nhau như thế nào?", "Tại sao cách truy cập bộ nhớ lại ảnh hưởng đến hiệu năng?" Nếu bạn từng bị khựng lại không biết nói gì trước những câu hỏi đó, điều bạn đang thiếu không phải là số lượng dự án mà là khả năng giải thích được hệ thống do chính mình tạo ra.
Lập trình viên cấp dưới
AIが機能をすぐに作ってくれるものの、性能改善をどうすればいいのかわからない開発者
Sử dụng AI giúp nhanh chóng tạo ra các tính năng. Vấn đề nằm ở bước tiếp theo. Khi mã chạy chậm, bộ nhớ tăng lên hoặc lưu lượng truy cập dồn về, bạn cần cải thiện nó. AI sẽ đưa ra nhiều giải pháp, nhưng cuối cùng việc lựa chọn đâu là giải pháp đúng vẫn là trách nhiệm của bạn. Nếu không có tiêu chí để phán đoán, dù kinh nghiệm có tăng lên thì năng lực giải quyết vấn đề cũng khó được trau dồi.
Kỹ sư AI
AI cho ra prompt chính xác để tạo ra sản phẩm có hiệu năng tốt hơn đối thủ trong thời gian nhanh hơn.
Nếu chỉ nói với AI "hãy làm cho nhanh", bạn sẽ tốn thời gian thử thay đổi đủ thứ mà không biết tại sao đoạn mã nhận được lại như vậy. Nếu hiểu nguyên lý, bạn có thể đưa ra chỉ dẫn chính xác ngay từ đầu. Chẳng hạn như "hãy kiểm tra xem việc truy cập bộ nhớ của kernel này có được hợp nhất hay không", "trước tiên hãy xác định xem nút thắt hiện tại nằm ở tính toán hay bộ nhớ". Khi đó, thay vì mất vài ngày cho việc thử và sai, bạn sẽ nhận được mã đạt hiệu năng ngay từ lần đầu. Đây chính là điểm tạo nên khác biệt, giúp bạn đưa sản phẩm ra nhanh hơn đối thủ.
Sau khi hoàn thành khóa học,
- Bạn có thể giao cho AI những công việc ở mức độ cao hơn. "Hãy tăng tốc bằng GPU" không còn là điểm dừng; bạn có thể yêu cầu: "Hãy kiểm tra xem Memory Coalescing của kernel này có đang hoạt động đúng không", "Hãy phân tích xem nguyên nhân khiến Occupancy thấp là do thanh ghi hay shared memory", rồi kiểm chứng câu trả lời nhận được.
- Vì đã xây dựng được nền tảng CS nên về sau bạn có thể hiểu mọi bài giảng, bất kể đó là bài nào. Bạn sẽ dễ dàng hiểu về mảng và bộ nhớ liên tục, heap, sắp xếp, độ phức tạp thời gian, cache và hệ thống phân cấp bộ nhớ, che giấu độ trễ, luồng và lập lịch, đồng bộ hóa và điều kiện tranh chấp, sai số dấu phẩy động, v.v.
- Trong phỏng vấn và thuyết trình, bạn có thể trả lời dựa trên căn cứ cho câu hỏi “Tại sao lại triển khai như vậy?”. Ở chương đầu, bạn ghi lại 20 câu hỏi về nguyên lý mà mình chưa thể trả lời, rồi đến chương cuối hoàn thành toàn bộ 20 câu. Nội dung được lưu lại dưới dạng có thể dùng ngay làm câu trả lời phỏng vấn.
- Bạn có thể nói “phần nào đã nhanh hơn bao nhiêu”. Bạn sẽ học cách đo chính xác thời gian kernel bằng đồng hồ GPU, tính băng thông đạt được để so sánh với giới hạn lý thuyết, cũng như cách đánh giá thay thế khi profiler bị lỗi.
- Bạn biết cần xem xét ở đâu khi hiệu năng không đạt yêu cầu. Bạn sẽ có tiêu chí để phân biệt liệu nút thắt nằm ở tính toán hay bộ nhớ.
Đặc điểm của khóa học này
Điểm mạnh cốt lõi (1)
Không có khóa học nào giúp bạn dễ dàng hiểu được nguyên lý như thế này.
Có rất nhiều tài liệu giải thích về GPU. Tuy nhiên, phần lớn đều dùng thuật ngữ để giải thích thuật ngữ. Sau khi đọc câu “Warp là một nhóm gồm 32 luồng và được thực thi theo cơ chế SIMT”, bạn chỉ biết thêm một thuật ngữ, chứ vẫn không hình dung được bức tranh tổng thể.
Khóa học này không bắt đầu từ định nghĩa. Trước tiên, khóa học đặt câu hỏi: Nếu không biết điều này thì bạn sẽ không thể phán đoán điều gì? Nếu không biết warp, bạn không thể lựa chọn vì sao kích thước block nên là bội số của 32; nếu không hiểu hệ thống phân cấp bộ nhớ, bạn sẽ không biết nên bắt đầu xem xét từ đâu khi gặp đoạn mã chậm. Trước hết, khóa học tạo ra cảm giác mông lung đó, sau đó đưa ra định nghĩa chính xác, và cuối cùng cho bạn thấy cảnh điều đó thực sự xảy ra trong đoạn mã tìm kiếm 1 triệu tài liệu.
Định nghĩa thuật ngữ ngay khi chúng xuất hiện lần đầu và kèm theo nguyên văn tiếng Anh. Những khái niệm dễ bị bỏ qua với suy nghĩ “chắc là bạn biết rồi” như mảng, con trỏ, độ phức tạp thời gian, bộ nhớ đệm cũng được xử lý như vậy. Với người đã biết, đó chỉ là một câu lướt qua, nhưng với người chưa biết, câu đó là cây cầu giúp họ có thể theo học khóa học đến cuối.
Thế mạnh cốt lõi (2)
Tôi cung cấp nguyên vẹn mã nguồn thực hành để cho thấy chúng hoạt động đúng theo nguyên lý thực tế.
Không dừng lại ở phần giải thích. Chúng tôi cung cấp toàn bộ mã nguồn và Makefile của 15 chương trình thực hành: cpu_search, hello_kernel, index_check, device_info, warp_waste, divergence, spill, gpu_search, timing, sync_experiment, reduction, coalesced, stride, bandwidth, occupancy. Mỗi chương trình được tạo ra để đo lường một nguyên lý.
Trong bài giảng, chúng tôi hiển thị nguyên vẹn màn hình build và chạy chương trình này. Không bỏ qua dù chỉ một dòng lệnh hay một dòng đầu ra. Vì vậy, ngay cả khi chỉ xem bài giảng mà không thiết lập môi trường thực hành, bạn vẫn có thể tận mắt xác nhận rằng "đúng là kết quả xuất hiện theo nguyên lý", còn nếu muốn tự chạy thì chỉ cần dùng nguyên đoạn mã tương tự.
Bạn sẽ học những nội dung như thế này
Toàn bộ 47 bài giảng được kết nối thành một mạch thống nhất. Bắt đầu từ lý do CPU và GPU được thiết kế khác nhau, chúng ta sẽ lần lượt tìm hiểu từng nguyên lý theo trình tự, từ cách các luồng được nhóm và thực thi cho đến lý do vị trí lưu trữ của giá trị quyết định thời gian. Chúng ta sẽ kiểm chứng cách những nguyên lý đó thực sự vận hành bằng một chương trình tìm kiếm 1 triệu tài liệu.
Vì vậy, chúng tôi khuyên bạn nên học theo đúng thứ tự. Bởi vì những con số đã được xác nhận trong bài giảng trước sẽ trở thành tiêu chí để đánh giá việc cải thiện hiệu năng trong các bài giảng sau. Nguyên lý GPU và kiến thức CS cũng không được học tách rời. Chúng tôi sẽ giải thích ngay tại chỗ khi cần.
PHẦN 1 · Bài 1~5
Tại sao bây giờ cần tìm hiểu nguyên lý GPU và kiến thức CS?
Trước hết, chúng ta sẽ tìm hiểu vì sao cần nắm vững nguyên lý trong thời đại AI viết mã thay chúng ta. Sau đó, chúng ta sẽ xác định những gì có thể đạt được từ khóa học này và chuẩn bị môi trường thực hành. Bạn có thể bỏ qua phần chuẩn bị môi trường thực hành mà không ảnh hưởng đến việc theo dõi bài giảng.
- 1Lý do cần hiểu nguyên lý GPU và kiến thức CS trong thời đại AI (1)
- 2Trong thời đại AI, lý do cần hiểu nguyên lý GPU và kiến thức CS (2)
- 3Lý do cần hiểu nguyên lý GPU và kiến thức CS trong thời đại AI (3)
- 4Những gì bạn sẽ học được trong khóa học này
- 5Môi trường thực hành — Bạn có thể bỏ qua phần này
PHẦN 2 · Bài 6~11
CPU và GPU khác nhau như thế nào?
“GPU nhanh vì có nhiều lõi” không thể giải thích được những trường hợp GPU lại chậm hơn. Hãy xem hai thiết bị đã dùng cùng một ngân sách bóng bán dẫn vào đâu. Chúng ta sẽ lần lượt đề cập riêng các câu hỏi thực tế thường xuất hiện trong phỏng vấn về CPU và GPU.
- 6Sự khác biệt trong thiết kế giữa CPU và GPU (1)
- 7Sự khác biệt trong thiết kế giữa CPU và GPU (2) — Ở mức độ học sinh tiểu học cũng có thể hiểu được
- 8Sự khác biệt trong thiết kế giữa CPU và GPU (3) — Câu hỏi phỏng vấn về CPU
- 9Sự khác biệt trong thiết kế giữa CPU và GPU (4) — Câu hỏi phỏng vấn về GPU
- 10Sự khác biệt trong thiết kế giữa CPU và GPU (5) — 3 phương pháp tính toán
- 11Sự khác biệt trong thiết kế của CPU và GPU (6)
PHẦN 3 · Bài 12~21
Xây dựng nền tảng CS và tạo chuẩn mực bằng CPU
Chúng ta sẽ tìm hiểu vì sao sử dụng vector, bộ nhớ GPU có dung lượng bao nhiêu và mối quan hệ giữa thread với bộ nhớ. Sau đó, chúng ta sẽ tự tính để kiểm chứng tích vô hướng, chuẩn và độ tương đồng cosine, rồi đi qua các thuật toán sắp xếp và cấu trúc dữ liệu heap trước khi triển khai bằng CPU để nắm được thời gian chuẩn. Giá trị này sẽ là mẫu số của mọi hệ số ở phần sau.
- 12Kiến thức CS — Tại sao sử dụng vector
- 13Kiến thức CS — Dung lượng bộ nhớ của GPU
- 14Kiến thức CS — Thread và bộ nhớ GPU
- 15Đo đạc thực tế trên máy chủ GPU
- 16Kiến thức CS — Tích vô hướng, chuẩn, độ tương đồng cosine (1)
- 17Kiến thức CS — Tích vô hướng, chuẩn, độ tương đồng cosine (2)
- 18Lý do tìm kiếm vector bằng CPU chậm
- 19Kiến thức CS — Thuật toán sắp xếp toàn phần
- 20Kiến thức CS — Thuật toán sắp xếp một phần và cấu trúc dữ liệu Heap
- Đo lường bằng CPU 21
PHẦN 4 · Bài 22~32
GPU thực thi mã như thế nào
Sau khi phân biệt những việc GPU làm tốt và không làm tốt, chúng ta sẽ xem CPU và GPU phối hợp với nhau như thế nào. Sau khi định nghĩa kernel là gì và đo đạc thực tế, bắt đầu từ thread, chúng ta sẽ đi sâu vào hoạt động bên trong GPU qua năm bài học.
- 22Những việc GPU làm tốt
- 23Những việc GPU không làm tốt lắm
- 24Kiến thức CS — CPU và GPU hợp tác với nhau như thế nào
- 25Kernel của GPU là gì
- 26Đo lường thực tế kernel
- 27Luồng của GPU
- 28Nguyên lý GPU (1)
- 29Nguyên lý GPU (2)
- 30Nguyên lý GPU (3)
- 31Nguyên lý GPU (4)
- 32Nguyên lý GPU (5)
PHẦN 5 · Bài 33~42
Phải hiểu bộ nhớ mới thấy được hiệu năng
Nơi dữ liệu được lưu trữ quyết định thời gian xử lý. Chúng ta sẽ tìm hiểu về hệ thống phân cấp bộ nhớ trong ba bài giảng, đồng thời đề cập đến việc di chuyển dữ liệu giữa CPU và GPU. Lý do việc chỉ tăng tốc kernel là chưa đủ sẽ được giải thích ở đây. Nội dung tiếp tục với cách đo thời gian chính xác, tối ưu hóa bộ nhớ, cũng như đồng bộ hóa, điều kiện tranh chấp và số dấu phẩy động.
- 33Phân cấp bộ nhớ của GPU (1)
- 34Phân cấp bộ nhớ của GPU (2)
- 35Phân cấp bộ nhớ của GPU (3)
- 36Nguyên lý di chuyển dữ liệu giữa CPU và GPU (1)
- 37Nguyên lý di chuyển dữ liệu giữa CPU và GPU (2)
- 38Tối ưu hóa CPU-GPU — lưu trú trong bộ nhớ
- 39Đo lường hiệu năng — Đo thời gian
- 40Tối ưu hóa bộ nhớ GPU
- 41Kiến thức CS — Đồng bộ hóa và Race Condition
- 42Kiến thức CS — phép reduction và số dấu phẩy động
PHẦN 6 · Bài 43~47
Trở thành người đo lường và đánh giá
Tiếp tục tìm hiểu những nguyên lý GPU còn lại, đồng thời học cách đánh giá hiệu năng thông qua mức độ sử dụng và các công cụ profiling. Chúng ta sẽ tổng hợp cả những gì có thể đưa ra làm cơ sở khi xin việc, chuyển việc và trong các dự án thực tế rồi kết thúc.
- 43Nguyên lý GPU (6)
- 44Nguyên lý GPU (7)
- 45Phương pháp đo hiệu năng — mức độ sử dụng
- 46Các công cụ đo lường hiệu năng cần sử dụng trong dự án khi xin việc hoặc chuyển việcパフォーマンス測定ツール
- 47Hãy kiếm mức lương cao hơn mà không bị AI thay thế.
Kiến thức CS được học vì sự cần thiết.
Vector, tích vô hướng và chuẩn, thuật toán sắp xếp, cấu trúc dữ liệu heap, hệ thống phân cấp bộ nhớ, đồng bộ hóa và điều kiện tranh chấp, phép rút gọn, sai số dấu phẩy động. Đó là những bài giảng có gắn «Kiến thức CS» trong mục lục. Xuất hiện trong những tình huống cần giải thích chính xác vì sao chúng hoạt động như vậy dựa trên nhu cầu thực tế. Vì vậy, chúng được ghi nhớ rất rõ.
Người tạo ra bài giảng này
TECHLEAD CRO
TechLead CRO
Là chuyên gia AI và đám mây với 20 năm kinh nghiệm, xuất thân từ chương trình tuyển dụng nhân viên mới của Tập đoàn SK.
Là nhà nghiên cứu quốc gia về R&D được đăng ký trong NTIS, tôi đã thực hiện 6 đề tài R&D liên quan đến trí tuệ nhân tạo và nộp đơn xin cấp 7 bằng sáng chế, trong đó 3 bằng đã được cấp trong các lĩnh vực thị giác máy tính, công cụ tìm kiếm và hệ thống đề xuất thương mại điện tử. Tôi đã viết các bài nghiên cứu về khả năng đọc hiểu của mã do AI tạo ra, hệ sinh thái dịch vụ trung gian AI và khả năng tiếp cận thông tin trong kỷ nguyên AI. Năm 2019, tôi đã nhận Giải thưởng của Cục trưởng Cục Doanh nghiệp vừa và nhỏ và Khởi nghiệp Incheon.
KT Cloud, Hyundai Mobis, Hyundai AutoEver, Tập đoàn Isu, Đại học Công nghệ và Giáo dục Hàn Quốc, Cơ quan Đánh giá và Thẩm định Bảo hiểm Y tế cùng nhiều đơn vị khác, tôi đang giảng dạy các khóa học về Agentic AI, MLOps, học máy và học sâu, bảo mật đám mây.
Tại sao tôi tạo ra khóa học này
Khi tư vấn về AI cho các tập đoàn lớn tại hiện trường, tôi thường xuyên bắt gặp những tình huống tương tự. Họ đã quen với việc yêu cầu AI viết mã, nhưng thường gặp khó khăn ở bước đánh giá xem đoạn mã đó có được viết đúng hay không. Khi AI nói rằng "hiệu năng đã được cải thiện", họ khó xác định vì sao lại tốt hơn; ngược lại, khi mã chạy chậm hơn, họ cũng không biết nên bắt đầu tìm vấn đề từ đâu.
Để đưa ra những đánh giá như vậy, cuối cùng bạn cần biết GPU hoạt động như thế nào, cũng như các nguyên lý cơ bản của CS làm nền tảng cho nó. Tuy nhiên, những kiến thức được học ở trường đại học thường chỉ còn lại dưới dạng kiến thức phục vụ cho các kỳ thi, và ngay cả trong công việc thực tế cũng không có nhiều cơ hội để học lại những nội dung này theo cách gắn liền với thực tiễn.
Thực ra, nội dung được đề cập trong khóa học này được xây dựng dựa trên những nội dung mà tôi đã giải thích mỗi khi cần trong lĩnh vực tư vấn AI cho các tập đoàn lớn và đào tạo doanh nghiệp. Khóa học cũng bao gồm nhiều nội dung thường không được đề cập trong các bài giảng nhập môn thông thường và khó tiếp cận nếu không tham gia các dự án thực tế hoặc hoạt động tư vấn.
Lần này, thay vì chỉ truyền đạt những nội dung đó trong một doanh nghiệp hay dự án cụ thể, chúng tôi đã hệ thống hóa lại thành một khóa học mà bất kỳ ai cũng có thể học theo từ đầu. Đây không phải là khóa học chỉ những người chuyên ngành GPU mới có thể hiểu; chúng tôi kết nối từ các khái niệm cơ bản đến mã nguồn thực tế và việc đo lường hiệu năng, để bất kỳ nhà phát triển nào muốn trực tiếp hiểu và đánh giá mã do AI viết đều có thể theo học.
Vì vậy, tôi đã trực tiếp biên soạn 23 chương giáo trình, 24 bài giảng video và 15 chương trình thực hành, đồng thời tự mình chạy và kiểm tra tất cả các ví dụ trên máy chủ GPU. Các số liệu hiệu năng được trình bày trong bài giảng cũng là kết quả đo được từ việc thực sự chạy mã.
Trong quá trình xây dựng khóa học này, tôi đã đặt ra ba nguyên tắc.
1. Giải thích khái niệm bắt đầu từ định nghĩa cơ bản nhất
2. Khi giải thích về hiệu năng, hãy đưa ra cả kết quả đo trực tiếp.
3. Không che giấu mà sẽ trình bày nguyên vẹn cả những thí nghiệm cho ra kết quả khác với dự đoán.
Bạn có điều gì thắc mắc không?
Q. Tôi không chuyên ngành và chưa từng học môn CS, liệu có thể theo kịp không?
Khóa học này được xây dựng với đối tượng mặc định là những người chưa từng học CS. Mảng, bộ nhớ liên tục, con trỏ, độ phức tạp thời gian và cache đều được định nghĩa ngay từ lần đầu xuất hiện. Chúng tôi không chỉ đưa ra định nghĩa rồi bỏ qua, mà còn kèm theo tên gọi chính thức như "thứ này thường được gọi là heap", để sau này bạn có thể tự tìm kiếm và tìm hiểu sâu hơn.
Q. Trong thời đại AI có thể viết cả mã, liệu việc học nguyên lý GPU bây giờ còn hữu ích không?
Hoàn toàn ngược lại.
Không phải học nguyên lý vì AI không thể viết mã. Chính vì AI đã bắt đầu viết mã quá giỏi, nên giờ đây con người phải có khả năng hiểu đoạn mã đó và giao cho AI thực hiện những công việc ở cấp độ cao hơn.
Nếu không hiểu nguyên lý, yêu cầu sẽ chỉ dừng lại ở mức “hãy giúp tôi làm nhanh bằng GPU”. Nếu hiểu nguyên lý, bạn có thể yêu cầu: “Hãy kiểm tra xem Memory Coalescing của kernel này có đang hoạt động đúng không”, “Hãy phân tích nguyên nhân khiến Occupancy thấp là do register hay shared memory”, “Trước tiên hãy xác định kernel này bị giới hạn bởi memory hay compute”, đồng thời có thể kiểm chứng xem câu trả lời nhận được có chính xác hay không. AI càng trở nên mạnh mẽ, những người hiểu nguyên lý càng có khả năng tồn tại.
Q. Nhất thiết phải thực hành trên máy tính GPU không? Chỉ nghe giảng mà không thực hành thì có hiểu được không?
Có, ngay cả khi không làm theo phần thực hành, vì khóa học trình bày đầy đủ trong bài giảng những nội dung đã thực hành thực tế, bạn vẫn có thể học đúng về nguyên lý GPU và kiến thức CS mà không cần tự thiết lập môi trường thực hành. Khóa học được thiết kế để bạn có thể hiểu ngay cả khi chỉ nghe.
Q. Máy tính của tôi không có GPU NVIDIA. Tôi có cần thuê và sử dụng máy chủ GPU như trong nội dung khóa học không?
Khóa học này ngay từ đầu được xây dựng với giả định rằng "máy tính xách tay của tôi không có GPU". Vì vậy, bạn sẽ thuê một máy chủ có GPU NVIDIA để thực hành.
Trong khóa học, để dễ dàng làm theo, bạn sẽ thuê máy chủ GPU theo giờ trên RunPod và kết nối qua SSH, đồng thời lần lượt thực hiện theo hướng dẫn trên màn hình và từng lệnh, từ tạo tài khoản, tạo máy chủ, tạo khóa SSH, kết nối, tải tệp lên cho đến khôi phục môi trường. Có hướng dẫn cho cả macOS và Windows.
Thông tin cần lưu ý trước khi học
Môi trường thực hành
- Máy tính của bạn — Có thể sử dụng cả macOS và Windows. Không cần GPU NVIDIA. Bạn chỉ cần kết nối qua SSH trong terminal; hướng dẫn bao gồm quy trình cho cả hai hệ điều hành.
- Máy chủ GPU — Thuê theo giờ trên RunPod. Tiêu chuẩn của khóa học là một GPU RTX 4090 (VRAM 24 GB), dung lượng đĩa khoảng 60 GB. Bạn cũng có thể sử dụng GPU khác; nguyên lý vẫn giống nhau, chỉ có các con số thay đổi, và khóa học cũng hướng dẫn cách diễn giải những khác biệt đó.
- Phần mềm — Sử dụng nguyên trạng image máy chủ có tích hợp CUDA Toolkit. Theo tiêu chuẩn của khóa học, phiên bản là CUDA 12.8 và driver dòng 570. Việc cài đặt đã được image máy chủ xử lý nên không có bước cài đặt riêng.
- Chi phí — Chi phí thuê máy chủ không bao gồm trong học phí và được tính theo thời gian máy chủ hoạt động. Tại thời điểm sản xuất khóa học, RTX 4090 có giá $0.74 mỗi giờ. Trong phần thực hành, chúng ta sẽ cùng tìm hiểu cách tạo môi trường khi thực hành, xóa môi trường sau khi hoàn tất và sử dụng cả tập lệnh khôi phục môi trường.
Tài liệu học tập
- Gửi bạn liên kết đến 23 chương của giáo trình web — nội dung theo cùng thứ tự với video, bao gồm định nghĩa chi tiết hơn, quy trình thực thi, cách đọc kết quả, câu hỏi kiểm tra và phần tổng kết.
- 15 chương trình thực hành (project.zip) — cpu_search, hello_kernel, index_check, device_info, warp_waste, divergence, spill, gpu_search, timing, sync_experiment, reduction, coalesced, stride, bandwidth, occupancy. Cung cấp toàn bộ mã nguồn và Makefile.
- Tập lệnh tạo dữ liệu — Nhúng 1 triệu đoạn văn để tạo tệp vectơ float32 768 chiều (3.07 GB).
- Tập lệnh khôi phục môi trường — ngay cả khi xóa máy chủ và tạo lại từ đầu, bạn vẫn có thể trở về cùng một môi trường chỉ trong vài phút.
Kiến thức nền tảng cần có và những lưu ý quan trọng
- Bất kỳ ai tò mò muốn biết GPU thực sự hoạt động như thế nào, đều có thể tham gia, không phân biệt chuyên ngành, không yêu cầu kinh nghiệm C/C++, không yêu cầu kinh nghiệm CUDA, cũng không quan trọng bạn đã học cấu trúc dữ liệu và thuật toán hay chưa. Chúng tôi sẽ từng bước giải thích nguyên lý của GPU và những kiến thức khoa học máy tính cần thiết cho việc đó.
- Bạn nên học theo đúng thứ tự. Vì khóa học được xây dựng theo cấu trúc liên tục cải tiến một chương trình, nên các số liệu đo thực tế ở chương trước sẽ trở thành giá trị chuẩn cho chương sau.
- Những nội dung khóa học này không đề cập — ghi nhớ cú pháp CUDA, cách sử dụng PyTorch·vLLM, các tùy chọn tinh chỉnh thư viện. Đây là khóa học về những nguyên lý nền tảng bên dưới.
- Bản quyền tài liệu khóa học thuộc về người chia sẻ kiến thức. Bạn có thể tự do chỉnh sửa và sử dụng mã thực hành cho mục đích học tập, nhưng nghiêm cấm phân phối lại và chia sẻ tài liệu khóa học.
Trở thành một nhà phát triển có thể hiểu, chỉ dẫn và kiểm chứng mã do AI tạo ra.
Đó là mục tiêu của khóa học này.