C++ AMP – ‘Đồ chơi’ mới của Microsoft cho lập trình trên GPU

at 2011.06.20

Dường như Microsoft (MS) rất thích đứng riêng một mình, quá khứ đã vậy, hiện tại đang vậy và tương lai … chắc vẫn vậy ! Lần “vậy” gần đây nhất của hãng này là tại hội thảo AFDS do AMD, vài đại diện của MS đã được mời tham dự ở vị trí trên sân khấu. Đại diện của MS, Herb Sutter đã có một buổi nói chuyện dài hơi về tương lai của điện toán, mà cụ thể là điện toán song song phức hợp (heterogeneous parallel computing). Cũng tại đấy, Sutter chính thức công bố về C++ AMP, một phần mở rộng của ngôn ngữ C++, hiện được dùng phổ biến trong giới lập trình.

AMP là gì ? Đấy là viết tắt của Accelerated Massive Parallelism, hay Sự song song Được tăng tốc Hàng loạt ! Có lẽ chúng ta sẽ dùng từ gốc viết tắt C++ AMP cho đơn giản vậy … C++ AMP khác C++ thường ở chỗ nó hỗ trợ các giải pháp điện toán phức hợp có tính song song, kiểu như CPU + GPU hoặc APU. Một cách vắn tắt thì C++ AMP gần giống như OpenCL (dựa trên C), song khác biệt chính là C++ AMP đến từ MS và dựa trên nền tảng DirectX (DX), còn OpenCL do Khronos Group phát triển chủ yếu dựa vào C và OpenGL.

Đến đây ta lại thắc mắc : vậy C++ AMP khác gì Direct Compute (DC), thứ có tính năng tương tự OpenCL nhưng được MS áp dụng trong DX 11 ? Cá nhân tôi cho rằng : DC chủ yếu chỉ dùng cho game, còn C++ AMP dùng cho các ứng dụng phổ thông. Chính xác thì MS sẽ kèm C++ AMP theo bản Visual Studio (VS) vNext sắp tới của họ, mà VS thì dùng cho khác nhiều thứ.

Nếu quan tâm đến C++ AMP, bạn có thể tham khảo thêm tại đây.

Cũng tại buổi nói chuyện ấy, một đại diện khác của MS là Daniel Moth đã trình bày chi tiết hơn về cách lập trình cho GPU trên VS C++. Bạn có thể xem đoạn keynote ấy dưới đây :

Tuy vậy, nếu không phải lập trình viên mà “mệt” người vì 2 bài keynote có chiều dài trung bình 45′ – 60′ này, bạn có thể xem clip sau do các phóng viên của HotHardware ghi nhận lại. Nó hơi khó nghe hơn nhưng được cái đỡ “khô khan” hơn 2 clip của MS.

Đến lượt MS nhúng tay vào lập trình song song trên GPU, có lẽ người mất ăn ngủ nhiều nhất là ai bạn cũng đoán được.

12 responses to “C++ AMP – ‘Đồ chơi’ mới của Microsoft cho lập trình trên GPU”

  1. greesnow says:

    La ai…???

  2. INTEO chứ ai…!!!

  3. Kiến trúc x86 của Intel sắp đi hết đoạn đường của mình rồi. Không ai nghĩ hoặc tưởng tượng một ngày đẹp trời nào đó, cùng với Nokia chàng khổng lồ Inteo có gót chân x86 phải nộp đơn xin phá sản.

  4. dam_tac_king says:

    Thống nhất dùng ký hiệu M$ rồi chứ nhể?

  5. dotrihieu says:

    Cái đoạn DirectCompute so với C++ AMP nghe khá lạ lùng. Theo mình thì C++ AMP xây dựng trên nền DirectCompute để cho lập trình DirectCompute dễ hơn.

  6. ĐôngNT says:

    ước gì mình hiểu đc những thứ viết trong bài này là cái gì
    \\ em mới có 20t thôi

  7. Dark Man says:

    @dotrihieu : nôm na thì cả 2 đều dựa trên DX (hình như phải từ DX 11), khác biệt thế nào thì chịu, vì C++ AMP vừa ra mắt

    cá nhân mình thì có thể xem C++ AMP là phiên bản phổ thông của DC vốn chỉ thấy trên game

  8. MameTauKhua says:

    Mình đã ao ước có 1 ngày dùng máy cpu cùi (nhưng vga xịn) chơi những game ngốn cpu ở vô cùng & giờ đây ngày đó chẳng còn xa nữa =)) core i9 i10 còn chào thua chứ đừng nói i7 =)) ha’ha’

  9. real_kakashi says:

    Mình nghĩ C++ AMP giống như ngôn ngữ cấp cao , khi viết xong thì dịch ra dòng code C++ dùng DirectCompute.
    Nếu viết trực tiếp dùng DirectCompute thì tốn khá nhiều công sức, phải tạo device, buffer ,compute shader ..v.v.v.

    Khi viết code bằng C++ AMP thì những thứ nói trên được che giấu, giống như viết code bằng C++ thì chẳng cần quan tâm dòng mã máy dịch ra nó nạp register , nạp lệnh ..v.v. như thế nào

    Vì che giấu như vậy nên cái C++ AMP này chỉ dành cho tính toán phổ thông, ko dùng được trong lập trình game, vì những cái device ,buffer ,shader trên còn dùng vào việc khác ,như render.

  10. meohen1989 says:

    cha chả ,voz đã súp pọt html5 rồi đấy ,2 cái video chạy bằng html5 :))

  11. anhhnt says:

    2 cái đầu chạy = silverlight, cái sau chạy bằng adobe fp, làm gì có html5

Leave a Reply

You must be logged in to post a comment.