Bạn không biết gpgpu là gì hay opencl là gì cũng không sao, cuda. Vì nó là từ chuyên môn dùng trong phần cứng và phần mềm của card đồ họa. Tuy nhiên, bài viết này sẽ giải thích ngắn gọn các thuật ngữ này và ứng dụng của chúng để bạn có thể hiểu chúng.
Gpgpu là gì?
Chúng ta đã biết rằng gpu (bộ xử lý đồ họa) là bộ xử lý đồ họa hay đơn giản là cạc đồ họa mà bạn đã mua và cắm vào vỏ máy tính. Nói chung gpu hỗ trợ cpu (bộ xử lý trung tâm) tính toán và xuất hình ảnh lên màn hình (chơi game mượt hơn). Nhưng nó chỉ hỗ trợ 1 chiều là cpu thực hiện phép tính rồi trả kết quả về gpu xử lý xuất hình ảnh ra màn hình nó không trả kết quả về cpu. Để GPU trả kết quả cho CPU, cần có hỗ trợ gpgpu (tính toán chung trên bộ xử lý đồ họa). Tức là gpgpu là thành phần giao tiếp giữa gpu và cpu. Nếu là game thì gpgpu là gì không quan trọng, cpu tính toán trả kết quả về gpu tính toán, xuất hình ảnh ra màn hình. Nếu bạn có nhiều hơn 1 gpu, thì gpus cần thêm một thiết bị để giao tiếp với nhau. Thiết bị là nvidia sli hoặc amd crossfirex. Nếu cần render trên vray, octane, redshift, Blender,…, gpgpu và kết quả tính toán của cpu được trả về gpu để tính toán hình ảnh rồi trả về cpu. Nếu bạn có nhiều hơn 1 gpu thì hệ thống vẫn hoạt động mà không cần sli hay crossfirex, vì lúc này các gpu hoạt động độc lập với nhau
Opencl và cuda là gì?
Chúng ta đã biết rằng gpgpu giúp gpu và cpu giao tiếp theo hai hướng. opencl và cuda là các khung phần mềm được sử dụng bởi gpgpu. Điều này có nghĩa là để can thiệp vào tính toán đó, gpgpu phải đi qua opencl/cuda. opencl là khung gpgpu mã nguồn mở được sử dụng trong card đồ họa amd. cuda là khung gpgpu độc quyền của nvidia. Card đồ họa của Nvidia hỗ trợ cả opencl và cuda, trước đây nvidia hỗ trợ opencl không tốt bằng amd nhưng thế hệ mới hay cụ thể hơn là dòng rtx 20 đã cải thiện đáng kể
Sức mạnh của gia tốc cuda là gì?
Sự khác biệt chính giữa cuda và opencl là cuda là một khung độc quyền do nvidia tạo ra trong khi opencl là mã nguồn mở. Mỗi phương pháp này đều có những ưu điểm và nhược điểm riêng, chúng tôi sẽ mô tả trong phần này. Nếu ứng dụng bạn chọn hỗ trợ cả cuda và opencl, hãy sử dụng cuda vì nó sẽ mang lại kết quả hoạt động tốt hơn. Lý do chính là nvidia cung cấp hỗ trợ chất lượng cao nhất cho các nhà phát triển ứng dụng chọn sử dụng khả năng tăng tốc cuda, vì vậy khả năng tích hợp luôn tuyệt vời. Ví dụ: hãy xem adobe cc, hỗ trợ cả cuda và opencl. cuda tăng tốc nhiều tính năng hơn và cung cấp khả năng tăng tốc tốt hơn cho các tính năng có thể được tăng tốc bởi cả hai khung. Nếu chúng ta xem ra mắt pro cs6, không có cuda, khả năng duy nhất để xem trước dựa trên phần mềm là chạy cpu thuần túy. Đọc thêm, trong một chủ đề diễn đàn về Creative Cow, một anh chàng adobe nói rằng cuda sẽ tốt hơn opencl trong hầu hết các trường hợp. Một ví dụ điển hình khác về sự khác biệt giữa hỗ trợ cuda và opencl có thể thấy trong redcine-x. Nếu bật opencl thì chỉ dùng được 1 gpu, tuy nhiên bật cuda thì dùng được 2 gpu cho gpgpu. Hoặc gần đây với phiên bản trình điều khiển phòng thu nvidia, chúng tôi có thể giải mã video 8k bằng gpu của nvidia. Rõ ràng, vì cuda là một framework độc quyền nên nó cần sự hỗ trợ của nvidia và thời gian để tích hợp nó vào các ứng dụng, điều đó có nghĩa là các tính năng luôn tuyệt vời. Tuy nhiên, CUDA không dễ dàng được các ứng dụng chấp nhận như OpenCL (vì nó là mã nguồn mở). Tuy nhiên, CUDA được hỗ trợ bởi một số lượng lớn các ứng dụng và tiếp tục phát triển. Theo nguyên tắc chung, nếu ứng dụng của bạn hỗ trợ cuda, hãy sử dụng nvidia, ngay cả khi nó cũng hỗ trợ opencl.
Những lợi thế của nền tảng opencl là gì?
opencl là một khung công tác gpgpu mã nguồn mở. Chúng tôi đã đề cập rằng nếu phần mềm của bạn hỗ trợ cả opencl và cuda, hãy sử dụng cuda, nhưng nếu opencl là lựa chọn duy nhất thì sao? Nói một cách đơn giản, nếu opencl là lựa chọn duy nhất của bạn, chẳng hạn như final cut pro x chỉ hỗ trợ opencl, chúng tôi thường khuyên người dùng nên sử dụng card đồ họa amd opencl. Nhìn chung, tích hợp opencl nói chung không chặt chẽ như cuda, nhưng vẫn mang lại hiệu suất tăng đáng kể với opencl và tốt hơn nhiều so với không có gpgpu. Như đã đề cập trước đó, card đồ họa nvidia cũng có thể sử dụng khung opencl, nhưng hiệu quả không bằng card đồ họa amd. Vì vậy, nếu bạn đang sử dụng một ứng dụng hoàn toàn dựa trên opencl và không có hỗ trợ cuda, chẳng hạn như final cut pro x, chúng tôi khuyên bạn nên trang bị cho hệ thống của mình gpu amd opencl.
Xem thêm: AMD vs nvidia: hãng nào sản xuất gpu tốt nhất?
Kết luận
- Không cần cpu mạnh để chơi game, nếu nhiều hơn 1 thẻ thì bắc cầu sli hoặc crossfirex
- render không cần sli hay crossfirex nhưng cpu phải mạnh
- Công cụ khai thác bitcoin có thể kết xuất không? Nó có thể render, nhưng nếu cpu không đủ mạnh thì sẽ bị thắt cổ chai
- amd hay nvidia? Nó phụ thuộc vào phần mềm bạn sử dụng. Nếu phần mềm bạn dùng chỉ hỗ trợ opencl thì chọn amd. Nếu phần mềm hỗ trợ thì chọn nvidia. Nếu render với các chu kỳ của máy xay sinh tố, chỉ số octan, dịch chuyển đỏ, vray thì chọn nvidia. Hoặc ngược lại, nếu bạn đang dựng hình bằng luxcorerender 9 hoặc radeon prorender 17, hãy chọn amd
- cuda hỗ trợ dò tia 3d hỗ trợ đa gpu
- hỗ trợ opencl có hỗ trợ nó nhưng amd không tiết lộ chi tiết
- cuda hỗ trợ 30 hiệu ứng trong công cụ đồ họa thủy ngân
- hỗ trợ opencl có hỗ trợ nó nhưng amd không tiết lộ chi tiết
- cuda hỗ trợ công cụ phát lại thủy ngân để chỉnh sửa video theo thời gian thực và kết xuất nhanh
- hỗ trợ opencl có hỗ trợ nó nhưng amd không tiết lộ chi tiết
- cuda hỗ trợ tính điểm theo thời gian thực
- OpenCL không được hỗ trợ
- cuda hỗ trợ các cảnh lớn làm tăng độ phức tạp của mô hình
- opencl hỗ trợ mô phỏng vật lý
- cuda hỗ trợ hiệu ứng video nhanh hơn, tính năng 3d lập thể độc đáo
- OpenCL không được hỗ trợ
- cuda hỗ trợ hiển thị thời gian thực
- OpenCL không được hỗ trợ
- cuda hỗ trợ hiệu chỉnh màu theo thời gian thực và khử nhiễu theo thời gian thực
- opencl hỗ trợ hiệu chỉnh màu thời gian thực
- opencl hỗ trợ chỉnh sửa fx thời gian thực – không cần kết xuất dòng thời gian phát lại tổng thể nhanh hơn & hiệu suất dòng thời gian nhanh hơn kết xuất hiệu ứng của bên thứ 3 mà không cần chuyển mã avchd hoặc các codec phức tạp khác sang prores có thể chỉnh sửa
- cuda hỗ trợ gỡ lỗi nhanh
- hỗ trợ opencl có sẵn nhưng amd chưa công bố chi tiết về hỗ trợ 1 gpu
- cuda hỗ trợ các hiệu ứng nhanh hơn
- OpenCL không được hỗ trợ
- cuda hỗ trợ các hiệu ứng nhanh hơn
- OpenCL không được hỗ trợ
- cuda hỗ trợ mã hóa và hiệu ứng video nhanh hơn
- hỗ trợ opencl có hỗ trợ nó nhưng amd không tiết lộ chi tiết
- cuda hỗ trợ tương tác tốt hơn
- OpenCL không được hỗ trợ
- cuda hỗ trợ các hiệu ứng nhanh hơn
- OpenCL không được hỗ trợ
- cuda hỗ trợ tăng độ phức tạp của mô hình với tốc độ tương tác
- OpenCL không được hỗ trợ
Khả năng tương thích của một số phần mềm với opencl/cuda
adobe after effect cc
adobe photoshop c
Adobe Premier phiên bản chuyên nghiệp
Adobe speedgrade cc
Autodesk Maya
Avid Media Composer
Đồ họa chuyển động điên rồ
Phân tích Hắc thuật của Da Vinci
Chuyên gia cắt cuối cùng
redcine-x
Giải mã video lên tới 8k, hỗ trợ 2 gpu
Bộ hiệu ứng đặc biệt của ngôi sao khổng lồ đỏ
Hình dạng viên đạn ma thuật ngôi sao khổng lồ đỏ
Sony Vegas Pro
Chủ xưởng đúc
Nhà máy chế tạo hạt nhân & hạt nhân
Đúc