AI đã viết toàn bộ mã cho bạn suốt thời gian qua,
nhưng bạn vẫn băn khoăn không biết chúng thực sự hoạt động như thế nào, đúng không?
Trong thời đại AI, chúng ta cần những người biết đưa ra chỉ thị công việc chính xác cho AI, kiểm soát và điều phối AI, chứ không phải 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ị xin việc và chuyển việc, hãy trau dồi năng lực đó thông qua khóa học này.
Chúng tôi đã đưa vào đây các nguyên lý về GPU được trình bày theo cách dễ hiểu nhất trên thế giới cùng những kiến thức CS cần thiết. Chúng tôi sẽ dạy bạn những điều bạn chưa thể học được ngay cả ở đạ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à thực thi, cũng như lý do 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 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 trên màn hình sự khác biệt giữa việc tìm 5 tài liệu tương đồng nhất trong 1 triệu tài liệu khi sử dụng CPU, GPU và khi đã tối ưu hóa tìm kiếm vector. Trong quá trình đó, chúng tôi cũng sẽ cung cấp các kiến thức khoa học máy tính như bộ nhớ đệm, luồng, đồ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.
AI sẽ viết mã. Việc của bạn là hiểu được mã đó hoạt động như thế nào, nhờ vậy có thể phát triển các tính năng và dịch vụ có hiệu năng tốt hơn trong thời gian ngắn hơn người khác.
ĐO ĐẠC TRÊN RTX 4090
| Tính độ tương đồng trên CPU | 558.83 ms |
| Kernel GPU đầu tiên | 11,736 ms 47,6 lần |
| Kernel tối ưu hóa GPU | 3.237 ms khoảng 173 lần |
Tôi khuyên dùng cho những người như sau
Sinh viên đại học phát triển bằng AI
Biết dùng AI để tạo ra sản phẩ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 trên lớp, câu lạc bộ hay dự án tự mình thực hiện, AI đều có thể viết mã cho bạn. Tuy nhiên, trong phỏng vấn hoặc thuyết trình, điều người ta hỏi không phải là sản phẩm cuối cùng mà là mức độ hiểu biết. Nếu từng lúng túng trước những câu hỏi như “Tại sao bạn lại triển khai như vậy?”, “CPU và GPU khác nhau ở điểm nào?”, “Tại sao cách truy cập bộ nhớ lại ảnh hưởng đến hiệu năng?”, thì đ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 hệ thống do chính mình tạo ra.
Lập trình viên cấp dưới
AI가 chức năng nhanh chóng tạo ra được, nhưng không biết phải cải thiện hiệu năng như thế nào.
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 dập, bạn cần cải thiện hệ thống. AI đưa ra nhiều giải pháp, nhưng cuối cùng chính bạn phải lựa chọn đâu là giải pháp phù hợp. 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
Những người cần đưa ra prompt chính xác cho AI để tạo ra sản phẩm nhanh hơn và có hiệu năng tốt hơn đối thủ.
Nếu chỉ nói với AI rằng "hãy làm cho nhanh", bạn sẽ mất thời gian thay đổi đủ thứ mà không biết tại sao đoạn mã trả về lại như vậy. Nếu hiểu nguyên lý, bạn có thể đưa ra chỉ thị 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 gộp lại hay không", "trước tiên hãy xác định xem nút thắt cổ chai hiện tại nằm ở tính toán hay bộ nhớ". Khi đó, thay vì mất vài ngày để thử và sai, bạn sẽ nhận được đoạn mã có hiệu năng tốt ngay từ lần đầu. Đây chính là điểm tạo nên sự khác biệt giúp bạn đưa sản phẩm ra mắt sớm hơn đối thủ.
Sau khi hoàn thành khóa học,
- Bạn có thể yêu cầu AI thực hiện những việc ở mức độ cao hơn. Không chỉ dừng lại ở việc "hãy tăng tốc bằng GPU", bạn cò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ì bạn sẽ xây dựng được nền tảng về khoa học máy tính, nên sau này có thể hiểu mọi bài giảng dù học bất kỳ khóa 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ư thế này?" Ở trang đầu tiên, 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 trang cuối cùng hoàn thành cả 20 câu. Nội dung được lưu lại theo hình thức có thể dùng ngay làm câu trả lời phỏng vấn.
- Bạn có thể nói rằng “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 kiểm tra ở đâ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
Ưu điểm cốt lõi (1)
Không có khóa học nào giúp hiểu nguyên lý một cách dễ dàng 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 giải thích thuật ngữ bằng các thuật ngữ khác. Sau khi đọc câu “Warp là một nhóm gồm 32 luồng và được thực thi theo 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ể đưa ra phán đoán nào? Nếu không biết warp, bạn sẽ không thể quyết định tại sao kích thước block nên là bội số của 32; nếu không biết 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 đối mặt với đoạn mã chậm. Sau khi tạo ra cảm giác mông lung đó, khóa học mới đưa ra định nghĩa chính xác, rồi cuối cùng cho bạn thấy điều đó thực sự diễn ra như thế nào trong đoạn mã tìm kiếm 100만 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 gốc tiếng Anh. Ngay cả những khái niệm dễ bị bỏ qua với suy nghĩ “chắc ai cũng biết” như mảng, con trỏ, độ phức tạp thời gian, bộ nhớ đệm cũng được giải thích 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 bài giảng đế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, qua đó cho thấy chúng hoạt động đúng theo nguyên lý thực tế.
Không chỉ 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 để kiểm chứng một nguyên lý.
Trong khóa học, chúng tôi sẽ trình chiếu nguyên màn hình build và chạy chương trình này. Không bỏ qua bất kỳ dòng lệnh hay dòng đầu ra nào. 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 “kết quả xuất ra đúng theo nguyên lý”; còn nếu muốn tự chạy, chỉ cần sử dụng nguyên vẹn đoạn mã đó.
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ý, từ cách các luồng được nhóm lại để chạy cho đến lý do vị trí đặt giá trị quyết định thời gian. Chúng ta sẽ kiểm chứng cách các nguyên lý đó thực sự hoạt động 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 thứ tự. Bởi vì những con số đã xác nhận ở bài giảng trước sẽ trở thành tiêu chí đánh giá để cải thiện hiệu năng ở bài giảng sau. Nguyên lý GPU và kiến thức CS cũng không được học tách riêng. 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ẽ làm rõ tại sao cần nắm vững nguyên lý trong thời đại AI viết mã. Trước tiên, hãy xác nhận những gì bạn sẽ đạt được qua 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)
- 2Lý do cần hiểu nguyên lý GPU và kiến thức CS trong thời đại AI (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 điều 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
Chỉ với lời giải thích "GPU nhanh vì có nhiều lõi" thì không thể giải thích được những trường hợp GPU ngược lại còn chậm hơn. Hãy xem hai thiết bị đã dùng cùng một ngân sách transistor vào đâu. Các câu hỏi thực tế thường xuất hiện trong phỏng vấn sẽ được trình bày riêng, chia thành phần về CPU và phần 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à thiết lập chuẩn mực bằng CPU
Xem xét lý do sử dụng vector, dung lượng bộ nhớ GPU và mối quan hệ giữa thread với bộ nhớ. Sau đó, kiểm chứng độ tương đồng tích vô hướng · chuẩn · cosine bằng cách tính thủ công, học qua cấu trúc dữ liệu sắp xếp và heap, rồi trước tiên xây dựng bằng CPU để có đượ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 — Kích thước bộ nhớ của GPU
- 14Kiến thức CS — Thread GPU và bộ nhớ
- 15Đo lường thực tế bằng 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 chạp
- 19Kiến thức CS — Thuật toán sắp xếp toàn bộ
- 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 cách GPU hoạt động bên trong qua năm bài giảng.
- 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
- 27Các luồ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. Chúng ta sẽ tìm hiểu về hệ thống phân cấp bộ nhớ trong ba bài giảng và cách dữ liệu di chuyển giữa CPU và GPU. Lý do việc chỉ tăng tốc kernel là chưa đủ đượ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 biết đo lường và đánh giá
Tiếp tục tìm hiểu các nguyên lý còn lại của GPU, đồng thời học cách đánh giá hiệu năng bằng mức độ sử dụng và các công cụ profiling. Chúng tôi sẽ tổng hợp và kết thúc với cả những gì bạn có thể đưa ra làm cơ sở khi tìm việc, chuyển việc và thực hiện các dự án thực tế.
- 43Nguyên lý GPU (6)
- 44Nguyên lý GPU (7)
- 45Phương pháp đo hiệu năng — mức độ sử dụng
- Khi xin việc hoặc chuyển việc, các công cụ đo lường hiệu năng cần sử dụng trong dự án 46
- 47Hãy nhận 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 reduction, 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. Chúng xuất hiện trong những tình huống bạn cần giải thích tại sao mọi thứ lại hoạt động như vậy vì một nhu cầu thực tế. Vì thế, chúng được ghi nhớ một cách chính xác.
Người tạo ra bài giảng này
TECHLEAD CRO
Techlead CRO
Tôi là chuyên gia AI và điện toán đá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.
Với tư cách là nhà nghiên cứu quốc gia về R&D đăng ký trên NTIS, tôi đã thực hiện 6 nhiệm vụ R&D liên quan đến trí tuệ nhân tạo và nộp đơn đăng ký 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 báo về khả năng đọc hiểu của mã do AI tạo ra, hệ sinh thái dịch vụ do AI trung gian và khả năng tiếp cận thông tin trong thời đại AI. Năm 2019, tôi được trao Giải thưởng của Trưởng Cục Doanh nghiệp vừa và nhỏ và Khởi nghiệp Incheon.
Tôi đang giảng dạy về Agentic AI, MLOps, machine learning·deep learning và bảo mật đám mây tại 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 sao tôi tạo ra khóa học này?
Khi tư vấn liên quan đến AI cho các doanh nghiệp lớn tại thực tế, tôi thường xuyên bắt gặp những tình huống tương tự. Nhiều người đã 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 cách 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 hiệu năng 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 nguyên nhân từ đâu.
Để đưa ra những phán đoán như vậy, cuối cùng chúng ta cần hiểu GPU hoạt động như thế nào, cũng như các nguyên lý cơ bản của khoa học máy tính làm nền tảng cho nó. Tuy nhiên, những kiến thứ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 thực tế công việc 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 điều mà trước đây 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 khóa nhập môn thông thường và khó tiếp cận nếu không tham gia vào các dự án thực tế hoặc hoạt động tư vấn.
Lần này, chúng tôi không chỉ giới hạn nội dung đó trong việc truyền đạt tại một doanh nghiệp hay dự án cụ thể, mà đã 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 ngay 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à đ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 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 sau khi 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. Trong phần giải thích về hiệu năng, sẽ trình bày kèm 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 các lớp CS, liệu có thể theo kịp không?
Khóa học này được xây dựng với giả định rằng người học chưa từng học CS. Các khái niệm như mảng, bộ nhớ liên tục, con trỏ, độ phức tạp thời gian và bộ nhớ đệm đều được giải thích ngay từ định nghĩa khi chúng xuất hiện lần đầu. 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, chẳng hạn 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 vào lúc này có 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 cần hiểu đoạn mã đó và có khả năng giao cho AI những nhiệm vụ ở cấp độ cao hơn.
Nếu không hiểu nguyên lý, yêu cầu sẽ chỉ dừng ở mức “Hãy làm cho 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 xem 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 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. Có nhất thiết phải thực hành trên máy tính có 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ì trong bài giảng đã trình bày đầy đủ nội dung thực hành thực tế, bạn vẫn có thể học đúng 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 xây dựng để bạn có thể hiểu ngay cả khi chỉ nghe giảng.
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 tiền đề rằng "laptop của bạn 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, để bạn có thể dễ dàng làm theo, chúng tôi sử dụng phương pháp thuê máy chủ GPU theo giờ từ RunPod và kết nối qua SSH; bạn sẽ lần lượt làm theo hướng dẫn trên màn hình và các 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 đến khôi phục môi trường. Có hướng dẫn cho cả macOS và Windows.
Lưu ý trước khi tham gia khóa 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 có GPU NVIDIA. Bạn chỉ cần kết nối qua SSH từ terminal, và chúng tôi hướng dẫn 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), với khoảng 60 GB dung lượng đĩa. Bạn cũng có thể sử dụng GPU khác; nguyên lý vẫn giống nhau, chỉ 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. Tiêu chuẩn của khóa học là CUDA 12.8 và driver dòng 570. Vì image máy chủ đã xử lý việc cài đặt nên không có bước cài đặt riêng.
- Chi phí — Chi phí thuê máy chủ được tính riêng ngoài học phí và phát sinh theo thời gian máy được bật. 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 khi thực hành, xóa sau khi hoàn tất và sử dụng 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, bạn vẫn có thể quay lại cùng một môi trường chỉ trong vài phút.
Kiến thức tiên quyết và lưu ý
- Bất kỳ ai tò mò về cách GPU thực sự hoạt động, 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ẽ lần lượt 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 đó.
- Khuyến nghị bạn học theo 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 kết quả đo thực tế ở chương trước sẽ trở thành giá trị chuẩn cho chương sau.
- Những điều 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 đề cập đến những nguyên lý nằm ở 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.