2012-01-24 26 views
7

Tôi nhận thấy có một số câu hỏi về chủ đề này nhưng tôi tin rằng góc của tôi là duy nhất.Tôi có thể sử dụng lõi trong GPU từ C# KHÔNG thay đổi mã?

Tôi có một ứng dụng C# trưởng thành mà tôi sử dụng để crunching số khoa học. Trong mã tôi bắt đầu 24 C# chủ đề trên 24 HyperThread của tôi (tức là tôi có 2 CPU mỗi với 6 lõi/12 chủ đề) máy trạm. Tôi chạy Windows 7 và nó xử lý nó một cách tuyệt vời - tôi có thể sử dụng toàn bộ sức mạnh xử lý của mình để hoàn thành công việc của mình.

Tôi thấy rằng một số GPU quảng cáo "448 lõi". Nếu tôi mua một trong những ứng dụng C# của tôi có thể sử dụng chúng? Ý tôi là không viết lại mã của tôi theo bất kỳ cách nào. Các chủ đề mà tôi bắt đầu có được nhận bởi lõi GPU thay vì HyperThreads của CPU như bây giờ không?

THEO D QUI CÂU HỎI

Xin chào, tôi đánh giá cao câu trả lời tôi nhận được - ngay cả khi phủ định.

Có phần cứng nào khác tôi nên suy nghĩ (không quá đắt) có thể cung cấp cho tôi một số lượng lớn các lõi, nhưng có thể chạy mã C# của tôi mà không cần viết lại không?

+0

bản sao có thể có của [Chạy mã C# trên GPU] (http://stackoverflow.com/questions/4119876/run-c-sharp-code-on-gpu) –

+0

Btw., 448 lõi thấp. Nhận thẻ kết thúc cao cấp hơn và bạn nói đến hàng nghìn. abnd khả năng để dẫn 8-10 của những GPU vào một máy tính với bảng bên phải. 2 cho mỗi thẻ, 3-4 thẻ là doable mà không có vấn đề. – TomTom

+0

Tất cả các câu trả lời là đáng thất vọng "không", nhưng có một mặt tươi sáng. Những thứ họ liên kết là rất thú vị. –

Trả lời

2

Heh ... no. Không đời nào. Những "lõi" không giống nhau. Để tận dụng lợi thế của bất kỳ máy tính GPU nào, bạn cần viết các tính toán của mình theo một cách rất cụ thể. Hãy thử OpenCL có thể. Nhưng câu trả lời cho câu hỏi của bạn là không.


Đối với chỉnh sửa của bạn, điều duy nhất có thể có ít thay đổi (tùy thuộc vào cách bạn hiện đang cấu trúc) là bộ xử lý. Nếu bạn không làm phần mềm tổng quát, bạn có thể chạy 48 lõi không phải HT. Có lẽ đó không phải là nút cổ chai, mặc dù. Bạn có thể tăng RAM của bạn để làm cho mọi thứ thường nhanh hơn đến một điểm nhất định.

+0

Xem chỉnh sửa, vui lòng – ManInMoon

+0

@ManInMoon: Chỉnh sửa đã xem. – Ryan

+0

Tại sao bạn đề cập đến 48 lõi cụ thể? Đó là một số giới hạn của lõi cho Windows? Đây không phải là phần mềm tổng quát - chỉ dành cho tôi. Ngoài ra tôi có thể thêm nhiều RAM như tôi có thể mua được. Có cách nào để có được số lõi lớn hơn như bạn đề xuất không? Tôi đang tìm kiếm một cách để có được hundrds của lõi thực sự – ManInMoon

1

Không. Chủ đề Net sẽ không tự động tận dụng các lõi GPU để xử lý. Chúng rất khác với lõi xử lý thông thường. Bạn sẽ cần phải thay đổi chương trình của bạn để tận dụng lợi thế của việc xử lý GPU.

+0

xem chỉnh sửa, vui lòng – ManInMoon

3

Bạn cần phải viết lại mã của mình thực sự để tận dụng một gpu. Các liên kết này có thể hữu ích: -

CUDA .NET - Chức năng của CUDA thông qua ứng dụng .NET.

CUDA Sharp - C# wrapper cho nVidia Toolkit

Đây là dựa trên hệ thống nVidia CUDA, do đó bạn sẽ cần một card nVidia cho điều này tất nhiên.

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