inflearn logo

Lập trình CUDA (0) - C/C++/Tính toán song song trên GPU - Bài giảng mẫu công khai

✅ Đây là bài giảng giới thiệu (0), giới thiệu toàn bộ loạt bài giảng từ (1) đến (6). ✅ Giải thích từng bước lập trình NVIDIA GPU + CUDA từ cơ bản. ✅ Xử lý cực nhanh các tác vụ như mảng/ma trận/xử lý hình ảnh/xử lý thống kê/sắp xếp bằng tính toán song song với ngôn ngữ C++/C.

(4.9) 56 đánh giá

1,531 học viên

Độ khó Trung cấp trở lên

Thời gian 36 tháng

CUDA
CUDA
GPU
GPU
Parallel Processing
Parallel Processing
C
C
C++
C++
CUDA
CUDA
GPU
GPU
Parallel Processing
Parallel Processing
C
C
C++
C++
Thumbnail

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.9

5.0

홍사부

100% đã tham gia

Cảm ơn bạn đã thực hiện khóa học tiếng Hàn này.. Hãy cùng chinh phục từng bước một nhé.

5.0

김성은

100% đã tham gia

Tôi là nhân viên văn phòng đang nghiên cứu từng bước chương trình. Tất nhiên, đó không phải là lĩnh vực công việc của tôi, nhưng tôi đã tham gia khóa học để tìm hiểu về mô hình mới do máy tính dẫn dắt. Nhờ những lời giải thích và bài giảng chi tiết, tôi đã có thể tham gia từng khóa học một. (Đây là bài giảng đầu tiên tôi học ở Infron~~ ^^) Tôi cũng sẽ lắng nghe kỹ bài giảng tiếp theo. tôi mong chờ.

5.0

몽크in도시

7% đã tham gia

Một người khác cũng đã viết đánh giá cho khóa học... Cảm ơn bạn rất nhiều vì đã thực hiện khóa học này bằng tiếng Hàn.

Bạn sẽ nhận được điều này sau khi học.

  • Toàn bộ series - Tính toán song song quy mô lớn của CUDA sử dụng GPU

  • Bài giảng này là - Phần (0) - Giới thiệu về Tính toán song song quy mô lớn và CUDA

  • Cập nhật - Tháng 6 năm 2023, "Remastering"🍀(Một số nguồn âm thanh, video giới thiệu)

  • Cung cấp ✅phiếu giảm giá theo gói✳️ trong lộ trình "Lập trình CUDA"

Tốc độ là linh hồn của chương trình!
Hãy làm cho nó nhanh hơn bằng kỹ thuật xử lý song song quy mô lớn 🚀

Nghe nói tính toán song song quy mô lớn rất quan trọng 🧐

CUDA = Công nghệ tính toán song song trên GPU được sử dụng rộng rãi nhất
Từng bước một + Ví dụ phong phú + Giải thích chi tiết = Chính là khóa học này !

Tính toán song song quy mô lớn dựa trên GPU/card đồ họa đang được sử dụng vô cùng rộng rãi trong các lĩnh vực như AI, Deep Learning, xử lý dữ liệu lớn (Big Data), xử lý hình ảnh/video/âm thanh. Và hiện nay, công nghệ được áp dụng phổ biến nhất trong tính toán song song trên GPU chính là kiến trúc CUDA của NVIDIA.

Trong số các phương pháp tính toán song song, các công nghệ như tính toán song song quy mô lớn và CUDA đóng vai trò rất quan trọng, nhưng thực tế rất khó để tìm được một khóa học giảng dạy bài bản về lĩnh vực này, khiến việc bắt đầu học trở nên khó khăn. Thông qua khóa học này, hãy từng bước học về lập trình CUDA. CUDA hay tính toán song song đòi hỏi nền tảng lý thuyết và có độ khó nhất định. Tuy nhiên, nếu bạn đi từ căn bản cùng với những ví dụ phong phú và phần giải thích kiến thức nền tảng của khóa học này, bạn hoàn toàn có thể làm được! Khóa học này dự kiến sẽ được sản xuất dưới dạng một chuỗi bài giảng (series), đảm bảo cung cấp đầy đủ thời lượng học tập cho người học.

Trong khóa học này, chúng tôi sẽ giải thích cách các lập trình viên C++/C kết hợp thư viện CUDA và các hàm C++/C để tăng tốc giải quyết các vấn đề trong nhiều lĩnh vực khác nhau bằng kỹ thuật xử lý song song quy mô lớn. Thông qua phương pháp này, bạn có thể tăng tốc các chương trình C++/C đã phát triển hoặc phát triển các thuật toán/chương trình mới hoàn toàn bằng tính toán song song để đạt được tốc độ nhanh đột phá.

📢 Hãy kiểm tra trước khi bắt đầu khóa học!

  • Vui lòng chuẩn bị sẵn môi trường phần cứng có hỗ trợ NVIDIA CUDA để thực hành. Bạn nhất thiết phải có PC/Laptop được trang bị card đồ họa NVIDIA GeForce.
  • Bạn có thể sử dụng card đồ họa NVIDIA GeForce trong một số môi trường đám mây, nhưng cài đặt của môi trường đám mây thường xuyên thay đổi và thường phải trả phí. Nếu là môi trường đám mây, vui lòng đảm bảo bạn có môi trường có thể sử dụng card đồ họa.
  • Bạn có thể kiểm tra chi tiết về môi trường thực hành của khóa học trong bài giảng <00. Các hạng mục chuẩn bị trước khi học> của chương trình học.

Đặc điểm của bài giảng ✨

#1.
Phong phú
ví dụ và giải thích

CUDA và tính toán song song quy mô lớn cần có nhiều ví dụ và giải thích phong phú. Trong loạt bài giảng này, chúng tôi cung cấp tổng cộng hơn 24 giờ giảng dạy, từ phần (0) đến phần (6).

#2.
Thực hành là bắt buộc!

Vì đây là môn học lập trình máy tính nên chúng tôi chú trọng vào việc thực hành phong phú, đồng thời cung cấp mã nguồn (source code) hoạt động thực tế để bạn có thể tự mình thực hiện theo từng bước một.

#3.
Tập trung vào
những phần quan trọng!

Trong thời gian bài giảng, chúng tôi sẽ hạn chế tối đa việc giải thích lặp lại các phần mã nguồn (source code) đã được giải thích trước đó, để bạn có thể tập trung học tập vào những phần thay đổi hoặc những phần cần nhấn mạnh.


Đề xuất cho những đối tượng sau 🙋‍♀️

Lập trình viên muốn cải thiện chương trình hiện có một cách đột phá

Nghiên cứu sinh chuyên ngành muốn biết cách các chương trình ứng dụng đa dạng được tăng tốc như thế nào

Sinh viên đại học muốn bổ sung danh mục hồ sơ (portfolio) về các công nghệ mới trước khi xin việc

Những ai muốn tìm hiểu về lý thuyết và thực tiễn của xử lý song song trong AI, học sâu (deep learning), tính toán ma trận, v.v.

Xem trước đánh giá khóa học 🏃

*Dưới đây là đánh giá về bài giảng bên ngoài do người chia sẻ kiến thức thực hiện với cùng chủ đề.

"Tôi đã không biết gì về thuật toán song song hay tính toán song song, nhưng
sau khi nghe bài giảng, tôi đã trở nên tự tin hơn về tính toán song song."

"Có rất nhiều thuật toán mà các chương trình C++ truyền thống không thể giải quyết được,
nhưng thông qua khóa học này, tôi đã có thể cải thiện chúng để có thể xử lý trong thời gian thực!"

"Sau khi nghe bài giảng và đi phỏng vấn, tôi nói rằng mình có kinh nghiệm về tính toán song song thì các nhà tuyển dụng đã rất ngạc nhiên.
Họ nói rằng ở cấp độ sinh viên đại học thì rất khó để tìm thấy các bài giảng về CUDA hay tính toán song song."


Lộ trình chinh phục lập trình CUDA 🛩️

  • Khóa học lập trình CUDA được thiết kế thành một chuỗi gồm 7 phần với tổng thời lượng hơn 24 giờ giảng dạy nhằm tăng cường mức độ tập trung vào từng chủ đề.
  • Khóa học lộ trình "Lập trình CUDA" cũng đang được cung cấp. Hãy nhớ kiểm tra nhé.
  • Mỗi bài giảng lại được cấu tạo từ hơn 6 phần, và mỗi phần sẽ đề cập đến một chủ đề độc lập. (Bài giảng hiện tại là Phần 0, chỉ cung cấp phần Giới thiệu (Introduction) gồm 2 phần.)
  • Các slide được sử dụng trong bài giảng được cung cấp dưới dạng tệp PDF, và trong các phần giải thích ví dụ thực hành, mã nguồn chương trình (source code) được sử dụng cũng sẽ được cung cấp.

Phần 0 (1 giờ bài giảng miễn phí)Bài giảng hiện tại

  • Giới thiệu về MPC, CUDA - Đây là phần giới thiệu tổng quan về MPC và CUDA.

Phần 1 (3 giờ 40 phút)

  • Khái niệm CUDA kernel - Tìm hiểu về khái niệm CUDA kernel, bước khởi đầu của lập trình CUDA, và bạn có thể kiểm tra cách thức hoạt động của tính toán song song.

Phần 2 (4 giờ 15 phút)

  • vector addition - trình bày các phép toán giữa các vector (mảng một chiều) thông qua nhiều ví dụ đa dạng và thực hiện triển khai quy trình AXPY bằng CUDA trong thực tế.

Phần 3 (4 giờ 5 phút)

  • memory hierarchy - tìm hiểu về cấu trúc bộ nhớ, cốt lõi của lập trình CUDA. Thực hiện các ví dụ như matrix addition, adjacent difference.

Phần 4 (3 giờ 45 phút)

  • matrix transpose & multiply - Trình bày các phép toán giữa các matrix (ma trận) dưới dạng mảng hai chiều thông qua nhiều ví dụ đa dạng, và thực hiện cài đặt routine GEMM bằng CUDA.

Phần 5 (3 giờ 55 phút)

  • atomic operation & reduction - Cùng với việc tìm hiểu về luồng điều khiển (control flow) trong CUDA, chúng ta sẽ học từ định nghĩa vấn đề đến các giải pháp cho atomic operation, reduction, v.v. Ngoài ra, chúng ta cũng sẽ triển khai routine GEMV bằng CUDA.

Phần 6 (3 giờ 45 phút)

  • search & sort - Tìm hiểu các ví dụ về cách triển khai hiệu quả các bài toán như search-all, even-odd sort, bitonic sort, counting merge sort bằng cách sử dụng kiến trúc CUDA.

Chinh phục thành công lập trình CUDA và
tính toán song song quy mô lớn!


Hỏi & Đáp 💬

Q. Đánh giá về các bài giảng trả phí như thế nào?

Vì các bài giảng trả phí được mở lần lượt từ (1) đến (6) nên các đánh giá bị phân tán và hiện vẫn đang ở chế độ riêng tư. Các bài giảng trả phí hiện đã nhận được những đánh giá như sau.

  • Tôi đã học hỏi được rất nhiều nhờ sự giải thích chi tiết của bạn về quá trình tối đa hóa hiệu suất bằng cách áp dụng nhiều kỹ thuật khác nhau trong cùng một ví dụ.
  • Việc giải thích bằng cách trực quan hóa cấu trúc bộ nhớ và logic giúp tôi hiểu bài dễ dàng hơn nhiều.
  • Trong quá trình học AI còn nhiều mơ hồ, thật tốt khi có thể bổ sung thêm các nội dung chuyên sâu về thiết bị.
  • Việc cài đặt phần mềm được hướng dẫn chi tiết và mã nguồn cũng được cung cấp nên rất thuận tiện cho việc thực hành.

Q. Người không chuyên có thể theo học khóa học này không?

  • Lập trình C++ đòi hỏi bạn phải có một mức độ kinh nghiệm nhất định. Ít nhất, bạn cần có kinh nghiệm lập trình C. Mặc dù tất cả các ví dụ đều được viết một cách dễ hiểu nhất có thể, nhưng tất cả đều được cung cấp bằng mã C++/C và các chức năng do các hàm như malloc, memcpy cung cấp sẽ không được giải thích riêng biệt.
  • Nếu bạn có hiểu biết về cấu trúc máy tính (thanh ghi, bộ nhớ đệm, v.v.), hệ điều hành (chia sẻ thời gian, v.v.), trình biên dịch (tạo mã, tối ưu hóa mã), bạn sẽ có thể hiểu nội dung bài giảng một cách sâu sắc hơn.
  • Thiết kế ban đầu của bài giảng này dành cho việc học chuyên sâu của sinh viên năm cuối, chuyên ngành máy tính tại các trường đại học hệ 4 năm.

Q. Có điều gì cần chuẩn bị trước khi nghe bài giảng không? Có lưu ý nào liên quan đến việc thụ giảng (môi trường cần thiết, các lưu ý khác, v.v.) không?

  • Bạn cần chuẩn bị sẵn môi trường phần cứng có hỗ trợ NVIDIA CUDA để thực hành. Nhất thiết phải có PC/Laptop được trang bị card đồ họa NVIDIA GeForce hoặc môi trường cloud.
  • Mặc dù có thể sử dụng card đồ họa NVIDIA GeForce trong một số môi trường đám mây, nhưng các thiết lập của môi trường đám mây thường xuyên thay đổi và thường phải trả phí, vì vậy vui lòng chọn môi trường mà bạn có thể sử dụng card đồ họa.

Q. Nội dung khóa học được đề cập đến cấp độ nào?

  • Bắt đầu từ Phần (0), càng lên cao từ Phần (1) đến Phần (6), chương trình càng yêu cầu lý thuyết sâu hơn và mức độ hiểu biết cao hơn.
  • Tôi thực sự khuyên bạn nên theo dõi và học tập theo đúng trình tự từ Phần (0) đến Phần (6).
  • Phần counting merge sort được đề cập ở cuối phần (6) là một vấn đề khó ngay cả đối với các nghiên cứu chuyên gia để có thể theo kịp ngay lập tức. Tuy nhiên, nhiều học viên đã theo dõi từng bước một cho biết họ đã hiểu vấn đề một cách suôn sẻ dựa trên những gì đã học ở các phần trước.

Q. Có lý do nào cho việc thiết lập thời hạn khóa học không?

  • Việc thiết lập thời hạn khóa học là do đặc thù của lĩnh vực máy tính, sau khoảng thời gian đó, khả năng cao là nội dung bài giảng này sẽ trở nên lỗi thời.
  • Đến lúc đó, tôi sẽ gặp lại các bạn trong một bài giảng mới. 😄

Q. Video có bao gồm phụ đề không?

  • Vâng. Tất cả các video đều có phụ đề !
  • Khi cập nhật, có thể sẽ có thêm những video không có phụ đề, nhưng cho đến hiện tại, chúng tôi vẫn đang cung cấp phụ đề cho tất cả các video.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người muốn tăng tốc xử lý mảng/ma trận/hình ảnh/thống kê/sắp xếp bằng tính toán song song/xử lý song song dựa trên C++C.

  • Những người muốn tăng tốc chương trình tự phát triển bằng tính toán song song/CUDA.

  • Những người muốn học lập trình NVIDIA CUDA/tính toán CUDA từ cơ bản.

  • Dành cho những ai muốn học hỏi một cách cân bằng giữa lý thuyết và thực hành về xử lý song song/tính toán song song trên GPU.

Cần biết trước khi bắt đầu?

  • Kinh nghiệm lập trình C++ hoặc C

  • Sẽ tốt hơn nếu bạn có kiến thức về cấu trúc máy tính, thanh ghi, bộ nhớ đệm, chia sẻ thời gian, v.v.

Xin chào
Đây là onemoresipofcoffee

9,624

Học viên

291

Đánh giá

65

Trả lời

4.9

Xếp hạng

30

Các khóa học

Thêm một tách cà phê phin nữa cho chuyến đi

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

56 đánh giá

4.9

56 đánh giá

  • wayfarecru0581님의 프로필 이미지
    wayfarecru0581

    Đánh giá 25

    Đánh giá trung bình 5.0

    5

    7% đã tham gia

    Một người khác cũng đã viết đánh giá cho khóa học... Cảm ơn bạn rất nhiều vì đã thực hiện khóa học này bằng tiếng Hàn.

    • onemoresipofcoffee
      Giảng viên

      Xin chào. Cảm ơn bạn đã đánh giá tích cực của bạn. Tôi sẽ gặp lại bạn với nhiều nội dung hơn.

  • dkcharng님의 프로필 이미지
    dkcharng

    Đánh giá 5

    Đánh giá trung bình 4.6

    5

    33% đã tham gia

    • liberty3266님의 프로필 이미지
      liberty3266

      Đánh giá 6

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • gyuwonjo3973님의 프로필 이미지
        gyuwonjo3973

        Đánh giá 3

        Đánh giá trung bình 4.7

        5

        100% đã tham gia

        • jlimvic8352님의 프로필 이미지
          jlimvic8352

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          Khóa học khác của onemoresipofcoffee

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!

          Miễn phí