2010-02-04 33 views
6

Tôi là lập trình viên C++ phát triển các thuật toán hình ảnh và video, tôi có nên học Nvidia CUDA không? hoặc nó là một trong những kỹ thuật sẽ biến mất?Tìm hiểu Nvidia CUDA

Trả lời

11

CUDA hiện là công nghệ của nhà cung cấp duy nhất từ ​​NVIDIA và do đó không có hỗ trợ đa nhà cung cấp mà OpenCL thực hiện.

Tuy nhiên, nó trưởng thành hơn OpenCL, có great documentation và các kỹ năng học được bằng cách sử dụng sẽ dễ dàng được chuyển sang bộ công cụ xử lý dữ liệu song song khác.

Ví dụ về điều này, đọc Data Parallel Algorithms bởi Steele và Hillis và sau đó xem Nvidia tutorials - có liên kết rõ ràng giữa hai giấy Steele/Hillis được viết trên 20 years trước khi CUDA được giới thiệu.

Cuối cùng, FCUDA Projects đang hoạt động để cho phép các dự án CUDA nhắm mục tiêu phần cứng không phải của nvidia (FPGA).

2

Tôi nghĩ bạn nên gắn bó với OpenCL, là tiêu chuẩn mở và được hỗ trợ bởi ATI, nVidia và hơn thế nữa. CUDA có thể không biến mất trong những năm tới, nhưng dù sao nó không tương thích với các GPU không phải nVidia.

+0

Tại sao downvote ??? – AndiDog

3

CUDA nên lưu ý trong một thời gian, nhưng nếu bạn mới bắt đầu, tôi khuyên bạn nên xem OpenCL hoặc DirectCompute. Cả hai đều chạy trên ATI cũng như phần cứng NVidia, ngoài việc làm việc trên các đơn vị vectơ (SSE) của CPU.

2

OpenCL có thể mất một thời gian để trở nên phổ biến nhưng tôi thấy việc học CUDA rất nhiều thông tin và tôi không nghĩ rằng CUDA sẽ ra khỏi ánh đèn sân khấu bất cứ lúc nào sớm. Bên cạnh đó, CUDA đủ dễ dàng để thời gian học ngắn hơn nhiều so với thời hạn sử dụng của CUDA.

2

Đây là kỷ nguyên của tính toán hiệu suất cao, tính toán song song. CUDA và OpenCL là những công nghệ mới nổi của GPU Computing mà thực sự là một máy tính hiệu suất cao! Nếu bạn là một lập trình đam mê và sẵn sàng đạt được điểm chuẩn trong các thuật toán song song, bạn thực sự nên đi cho các công nghệ này. Dữ liệu song song một phần của chương trình của bạn sẽ được thực hiện trong vòng một phần nhỏ của một giây trên GPU kiến ​​trúc nhiều lõi thường mất nhiều thời gian hơn trên CPU của bạn ..