Ví dụ về các thuật toán cho mục đích chung đã được hưởng lợi từ việc chạy trên GPU? [đóng cửa]


10

Tôi đang tìm kiếm các ví dụ về các thuật toán cho mục đích chung (có nghĩa là không liên quan đến đồ họa) đã được chứng minh là chạy một trật tự cường độ nhanh hơn trên GPU so với CPU. Tôi sẽ sử dụng các ví dụ này để suy nghĩ sáng tạo về các thuật toán khác mà tôi có thể thực hiện trên GPU.


Nối chuỗi, sắp xếp giấc ngủ
Công việc

Câu trả lời:


10

Một vài điều lập tức xuất hiện trong tâm trí:

Một khách hàng Bitcoin chuyên dụng đã được viết để sử dụng GPU để thực hiện băm mật mã. Máy khách GPU thường hoạt động tốt hơn gấp 10 lần so với máy khách CPU SMP trên hệ thống 4 lõi thông thường. Bitcoin phụ thuộc vào tính toán số lượng lớn băm mật mã không liên quan, có thể được tính toán song song.

Các Folding @ Home Dự án cung cấp một khách hàng GPU cho động lực học phân tử mô phỏng của họ. Những tính toán này được thực hiện trên các liên kết riêng giữa các nguyên tử trong các môi trường và điều kiện khác nhau. Toán học tương đối đơn giản, nhưng phải được tính toán hàng tỷ lần cho mỗi liên kết để mô phỏng chỉ vài nano giây hoạt động.

Ví dụ "đồ chơi" phổ biến được sử dụng bởi những người đề xuất tính toán GPU là vấn đề cơ thể .

Những gì những điều này có điểm chung là chúng song song lúng túng . Đó là, vấn đề có thể được phân tách thành một số lượng nhỏ các tính toán rời rạc được thực hiện nhiều lần trên một tập dữ liệu lớn. Đó là loại tính toán mà GPU giỏi.

Các tính toán phức tạp phụ thuộc vào kết quả của các tính toán trước đó không phù hợp với GPU.


Nhiều khách hàng BOINC có hỗ trợ GPU. SETI @ Home là một cái khác.
Brian Knoblauch

Thật. Có nhiều dự án như vậy, nhưng tôi không muốn biến đây thành một danh sách toàn diện các dự án - chỉ để chỉ ra những điểm chung của chúng.
greyfade

8

Chuyển mã video và âm thanh là một ví dụ tuyệt vời. Đó là sự chuyển đổi từ định dạng tệp này sang định dạng khác. Một ví dụ là MPEG-2 đến H.264.

Lưu ý chuyển mã video không liên quan đến đồ họa 3D. Bạn không thể mã hóa video bằng cách sử dụng trình tạo bóng đỉnh và pixel.


OP đang yêu cầu các ví dụ không liên quan đến đồ họa.
kiamlaluno

6
@kiamlaluno Chuyển mã video không liên quan đến đồ họa và chuyển mã âm thanh chắc chắn là không. Đó là sự chuyển đổi từ định dạng tệp này sang định dạng khác. Một ví dụ là MPEG-2 đến H.264. Nó không yêu cầu hiển thị đồ họa để thực hiện.
Thomas Owens

2
@kiamlaluno: Chuyển mã video không liên quan đến đồ họa 3D. Bạn không thể mã hóa video bằng cách sử dụng trình tạo bóng đỉnh và pixel.
DeadMG

3

Khai thác Bitcoin bằng cách sử dụng GPU đã trở nên rất phổ biến.

... hệ thống tiền điện tử ngang hàng. Việc tạo và chuyển Bitcoin dựa trên một giao thức mã hóa nguồn mở và không được quản lý bởi bất kỳ cơ quan trung ương nào. Mỗi bitcoin được chia nhỏ thành tám chữ số thập phân, tạo thành 100 triệu đơn vị nhỏ hơn gọi là satoshis. Bitcoin có thể được chuyển qua máy tính hoặc điện thoại thông minh mà không cần tổ chức tài chính trung gian.

Việc xử lý các giao dịch bitcoin được bảo mật bởi các máy chủ được gọi là người khai thác Bitcoin. Các máy chủ này giao tiếp qua mạng dựa trên internet và xác nhận các giao dịch bằng cách thêm chúng vào sổ cái được cập nhật và lưu trữ định kỳ. Ngoài việc lưu trữ các giao dịch, mỗi bản cập nhật sổ cái mới tạo ra một số bitcoin mới được đúc ...

Một ứng dụng khác là trong các thị trường tài chính cho giao dịch thời gian thực bằng cách sử dụng các mô hình như Black-Scholes .

... Một yêu cầu quan trọng để sử dụng các tùy chọn là tính toán giá trị hợp lý của chúng. Tìm cách giải quyết vấn đề giá cả hiệu quả này là một lĩnh vực nghiên cứu tích cực trong hơn ba mươi năm, và nó tiếp tục là một trọng tâm của kỹ thuật tài chính hiện đại. Khi nhiều tính toán đã được áp dụng cho các vấn đề liên quan đến tài chính, việc tìm ra các cách hiệu quả để thực hiện các thuật toán này trên các kiến ​​trúc hiện đại đã trở nên quan trọng hơn.

Chương này mô tả cách các tùy chọn có thể được định giá hiệu quả bằng cách sử dụng GPU. Chúng tôi thực hiện các đánh giá của mình bằng hai mô hình định giá khác nhau: mô hình Black-Scholes và mô hình mạng tinh thể. Cả hai cách tiếp cận này đều ánh xạ tốt tới GPU và cả hai đều nhanh hơn về GPU so với CPU hiện đại. Mặc dù cả hai cũng có ánh xạ đơn giản tới GPU, nhưng việc thực hiện các mô hình mạng đòi hỏi công việc bổ sung vì sự phụ thuộc lẫn nhau trong tính toán ...


2

Trò chơi cuộc sống của Conway là một ví dụ học thuật tốt.

... Vũ trụ của Trò chơi Sự sống là một mạng lưới trực giao hai chiều vô hạn của các ô vuông, mỗi ô nằm ở một trong hai trạng thái có thể, sống hoặc chết. Mỗi ô tương tác với tám lân cận của nó, đó là các ô nằm ngang, dọc hoặc chéo theo đường chéo. Tại mỗi bước trong thời gian, các chuyển đổi sau đây xảy ra:

  1. Bất kỳ tế bào sống nào có ít hơn hai hàng xóm sống đều chết, như thể gây ra bởi dân số dưới.
  2. Bất kỳ tế bào sống nào có hai hoặc ba người hàng xóm sống đều sống ở thế hệ tiếp theo.
  3. Bất kỳ tế bào sống nào có nhiều hơn ba người hàng xóm sống đều chết, như thể quá đông.
  4. Bất kỳ tế bào chết nào có chính xác ba hàng xóm sống đều trở thành một tế bào sống, như thể được sinh sản.

Các mẫu ban đầu tạo thành hạt giống của hệ thống. Thế hệ đầu tiên được tạo ra bằng cách áp dụng đồng thời các quy tắc trên cho mọi tế bào trong các lần sinh và tử của hạt giống xảy ra đồng thời và khoảnh khắc riêng biệt mà điều này xảy ra đôi khi được gọi là tích tắc (nói cách khác, mỗi thế hệ là một chức năng thuần túy của trước một). Các quy tắc tiếp tục được áp dụng nhiều lần để tạo ra các thế hệ tiếp theo ...


1

Các vấn đề đòi hỏi nhiều toán học có thể được thực hiện đồng thời. Nơi tôi từng làm việc, chúng tôi muốn chơi với GPU để cộng / trừ / nhân 2 ma trận để giải quyết vấn đề di truyền. Lần đầu tiên tôi nghe nói về GPU là chúng được sử dụng bởi một nhà phần mềm tài chính để thực hiện một số mô hình của chúng (monte carlo và vv). Điều này sẽ hữu ích trong việc phá mã.

GPU có thể sẽ không giúp ích nhiều cho các vấn đề lập trình thường xuyên hơn của bạn trong đó một vài lõi CPU là đủ vì hầu hết các chương trình thông thường chỉ cần chạy một vài quy trình đồng thời. (migh khác với bộ nhớ / đĩa nhanh hơn rất nhiều so với chúng ta hiện có)


-3

Có thể tôi đang rất toán / Khoa học / Kỹ thuật tính toán cụ thể nhưng một điều tôi nghĩ đến là thuật toán FFT.

Tôi đã thấy điểm chuẩn FFT này bị ném xung quanh trước đó và mặc dù nó đã được vài năm tuổi nhưng tôi nghĩ nó đã được thực hiện tốt cho những gì nó là: http://www.sharcnet.ca/~merz/CUDA_benchFFT

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.