2011-12-07 54 views
5

Tôi đang suy nghĩ về việc hỏi ông chủ của tôi về một GPU tốt, để thực hiện tính toán với hộp công cụ xử lý song song MATLAB. Tuy nhiên, sau một số thử nghiệm đơn giản trên máy tính của một đồng nghiệp, trên Quadro 600 NVidia, tôi nhận được hiệu suất rất kém (từ 1x đến 2x).Hiệu suất đạt được từ GPU với MATLAB?

Tôi đặc biệt quan tâm đến việc thực hiện các cuộc cách mạng trên các mảng n-d.

Người nào đó có trải nghiệm tương tự, đang thực hiện tính toán với gpuArray, v.v ...?

Tôi có thể mong đợi hiệu suất nào?

Tôi nên mua mẫu GPU nào (ít hơn 1000 đô la, hy vọng ít hơn 400 đô la)?

+2

Bạn có thể hiển thị các chức năng nào từ MATLAB mà bạn sẽ sử dụng không? – osgx

+2

Dường như có một vài câu hỏi ở đây. Trong số đó "Tôi nên mua GPU nào?" là chủ đề và quá địa phương trong quan điểm của tôi. "Bạn có kinh nghiệm gì?" có vẻ rất trò chuyện và cởi mở. – Flexo

+0

Như tôi đã nói trong câu hỏi của mình, tôi đặc biệt quan tâm đến các cuộc cách mạng, especiallay 'convn' và' conv2' – Oli

Trả lời

2

Hiệu suất của gpuArray trong MATLAB được thúc đẩy bởi một số yếu tố:

  • Cho dù vấn đề của bạn chạy tốt trên GPU ở nơi đầu tiên
  • bao nhiêu lõi CUDA bạn đã có trong điện thoại của bạn, nói chung càng nhiều càng tốt
  • Cho dù bạn đang sử dụng thiết bị có hiệu suất có độ chính xác cao gấp đôi (chẳng hạn như các thiết bị Quadro/Tesla gần đây về khả năng tính toán> = 2)
  • Phiên bản MATLAB nào bạn đang sử dụng sử dụng - R2011b là sig hiệu suất tốt hơn nhiều so với R2010b.

Dưới đây là ví dụ về một số điểm chuẩn trên blog 'Walking Randomly' tuyệt vời: http://www.walkingrandomly.com/?p=3634. Chúng hiển thị các loại tăng tốc mà người ta có thể mong đợi trong các ứng dụng hợp lý - tức là ~ 5x đến 10x là đáng tin cậy, nhiều hơn thế là hiếm.

(Nếu bạn muốn xem một trong những ví dụ hiếm hoi, Mandelbrot đặt trên GPU lập trình sử dụng gpuArray s và arrayfun chạy khoảng 1500x nhanh hơn so với CPU: http://www.mathworks.com/products/demos/parallel-computing/paralleldemo_gpu_mandelbrot/paralleldemo_gpu_mandelbrot.html?product=DW)

1

Một Quadro 400 chỉ có 48 lõi so với GeForce 480 có 480 lõi và GeForce 580 có 512 lõi. Cả hai cũng chạy ở đồng hồ cao hơn quá, do đó bạn có thể mong đợi hơn 10 lần đạt được hiệu suất khi truy cập bộ nhớ không phải là yếu tố hạn chế.

Tôi đã không sử dụng GPU để tăng tốc MATLAB nhưng tôi có máy tính cá nhân tôi sử dụng cho công cụ phát triển GPU (CUDA) mỗi ngày. Một chiếc có Quadro FX5800 + GeForce 480, một chiếc GeForce 580 khác. Theo hiểu biết tốt nhất của tôi, bạn sẽ không nhận được lợi ích gì từ thẻ máy trạm so với GeForce. Vì vậy, tiết kiệm một số $$$ và nhận được một GF480 hoặc GF580.

Chủ đề này dường như có chức năng chuyển đổi tăng tốc CUDA nhanh hơn 50x: http://www.mathworks.com/matlabcentral/fileexchange/20220 Tôi không chắc MATLAB có những cái gì ngoài những ngày này.

Hy vọng điều đó sẽ hữu ích! GPU có thể là tuyệt vời để tăng tốc nhiều tác vụ. Nhưng hiệu suất đạt được có thể mất một số theo đuổi.

1

Tôi hiện đang nghiên cứu này cùng một chủ đề. Một điều tôi thấy là các card đồ họa tầm trung và thấp được thiết kế để chơi game và do đó được tối ưu hóa cho hiệu năng FP32. Hiệu suất FP64 của chúng thấp hơn đáng kể và có thể là những gì bạn đang thấy. GTX Titan $ 1k dường như là điểm khởi đầu cho tính toán khoa học nghiêm túc.

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