2008-09-23 44 views
5

Tôi tự hỏi điều quan trọng giúp bạn trong việc phát triển GPGPU là gì và tất nhiên các ràng buộc mà bạn thấy không thể chấp nhận là gì.Những ưu điểm và nhược điểm của GPGPU (phát triển GPU đa năng) là gì?

nói đến cái tâm đối với tôi:

  • lợi thế chính: sức mạnh thô của những điều
  • chế chính: mô hình bộ nhớ

xem bạn là gì?

+0

http://codeflow.org/read-the-faq/#subjective –

Trả lời

2

Tôi thấy bài viết này thú vị về cách GPU sẽ không cần thiết với tốc độ của CPU và số lõi tăng lên.

http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars

+0

tôi khá nhiều đồng ý với quan điểm của Tim. Thậm chí nhiều hơn khi bạn tính đến sự xuất hiện của Larrabee. –

0

Từng là thú vị cho các kiến ​​trúc song song của họ và silicon bổ sung mà chủ yếu là nhàn rỗi và do đó có thể được sử dụng ở phía bên cho purpos chung nhiệm vụ lập trình -

see - http://en.wikipedia.org/wiki/CUDA

nhưng nó có thể không quá liên quan khi đối mặt với câu trả lời của Lou ở trên.

4

Bạn phải cẩn thận với cách bạn diễn giải các phát biểu của Tim Sweeney trong cuộc phỏng vấn Ars đó. Anh ấy nói rằng có hai nền tảng riêng biệt (CPU và GPU), một nền tảng phù hợp cho hiệu suất một luồng và một phù hợp cho tính toán định hướng thông qua, sẽ sớm trở thành một điều trong quá khứ, khi các ứng dụng và phần cứng của chúng ta phát triển theo hướng khác.

GPU phát triển vượt quá giới hạn công nghệ với CPU, điều này khiến cho các thuật toán tự nhiên hơn giống như dò tia và ánh xạ photon có thể tháo gỡ được ở độ phân giải hợp lý và khung hình. Đến với GPU, với một mô hình lập trình cực kỳ khác biệt và hạn chế, nhưng có lẽ 2 hoặc 3 đơn đặt hàng thông lượng lớn hơn cho các ứng dụng được mã hóa chặt chẽ với mô hình đó. Hai mô hình máy có (và vẫn có) về các kiểu mã hóa, ngôn ngữ khác nhau (ngôn ngữ OpenGL, DirectX, shader so với ngôn ngữ máy tính để bàn truyền thống) và luồng công việc. Điều này làm cho việc tái sử dụng mã và thậm chí là tái sử dụng kỹ năng lập trình/thuật toán, cực kỳ khó khăn và hamstrings bất kỳ nhà phát triển nào muốn sử dụng một bề mặt tính toán song song dày đặc vào mô hình lập trình hạn chế này.

Cuối cùng, chúng tôi sẽ đến một điểm mà chất nền tính toán dày đặc này có thể lập trình tương tự với CPU. Mặc dù vẫn có một đồng bằng hiệu suất khá lớn giữa một "lõi" của các máy gia tốc song song ồ ạt này (mặc dù các luồng thực thi bên trong, ví dụ, SM trên G80, không phải là lõi chính xác theo nghĩa truyền thống) và một máy tính để bàn x86 hiện đại lõi, hai yếu tố thúc đẩy sự hội tụ của hai nền tảng:

  • Intel và AMD đang di chuyển về phía hơn, lõi đơn giản trên chip x86, hội tụ các phần cứng với GPU, nơi đơn vị đang ngày càng trở nên hạt thô và có thể lập trình theo thời gian).
  • Điều này và các lực lượng khác đang sinh ra nhiều ứng dụng mới có thể tận dụng lợi thế của song song cấp độ dữ liệu hoặc chủ đề (DLP/TLP), sử dụng hiệu quả loại chất nền này.

Vì vậy, điều mà Tim nói là 2 nền tảng khác nhau sẽ hội tụ, đến một mức độ lớn hơn, ví dụ: OpenCl, chi phối.Trích dẫn nổi bật từ cuộc phỏng vấn:

TS: Không, tôi thấy chính xác bạn đang ở đâu tiêu đề. Trong giao diện điều khiển tiếp theo , bạn có thể có bảng điều khiển bao gồm một chip không phải hàng hóa . Nó có thể là một bộ vi xử lý chung, cho dù nó đã phát triển từ cấu trúc kiến ​​trúc hoặc kiến ​​trúc GPU trong quá khứ và nó có khả năng chạy được tất cả mọi thứ — đồ họa, âm thanh AI, và tất cả các hệ thống này theo cách hoàn toàn đồng nhất. Đó là một triển vọng rất thú vị của , vì nó có thể đơn giản hóa đáng kể bộ công cụ và các quy trình để tạo phần mềm .

Hiện tại, trong quá trình giao hàng Không thực tế 3, chúng tôi phải sử dụng nhiều ngôn ngữ lập trình . Chúng tôi sử dụng một ngôn ngữ lập trình để viết pixel trình đổ bóng, một cách khác để viết mã trò chơi và sau đó trên PlayStation 3, chúng tôi sử dụng một trình biên dịch khác để viết mã tới chạy trên bộ xử lý Cell. Vì vậy, các PlayStation 3 kết thúc lên trở thành một thách thức đặc biệt , vì có bạn có ba vi xử lý hoàn toàn khác nhau từ các nhà cung cấp khác nhau với bộ giảng dạy khác nhau và trình biên dịch khác nhau và kỹ thuật biểu diễn khác nhau. Vì vậy, rất nhiều sự phức tạp là không cần thiết và làm cho cân bằng tải khó khăn hơn.

Khi bạn có, ví dụ, ba chip khác nhau với khả năng lập trình khác nhau, bạn thường có hai trong số những chip ngồi nhàn rỗi cho nhiều thời gian, trong khi khác là maxed ra. Nhưng nếu kiến ​​trúc hoàn toàn đồng bộ, thì bạn có thể chạy bất kỳ tác vụ nào trên bất kỳ bộ phận nào của chip bất kỳ lúc nào và nhận được sự cân bằng hiệu suất tốt nhất theo cách đó là .

0

Lợi thế chính là gigaflop - quyền lực thô. Nhược điểm bao gồm tập lệnh giới hạn, không trực giao và mô hình lập trình.

Dưới đây là một bài báo khảo sát: http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907

Các bài viết wikipedia là một khởi đầu khá tốt.

Lou Franco chỉ vào cuộc phỏng vấn với Tim Sweeney; đây là slide của một cuộc nói chuyện ông, trong đó có chi tiết hơn: http://www.scribd.com/doc/5687/The-Next-Mainstream-Programming-Language-A-Game-Developers-Perspective-by-Tim-Sweeney

cũng Might mũi xung quanh: http://gpgpu.org

Các vấn đề liên quan