Cách sử dụng CUDA với NVIDIA Prime


10

Tôi đã tìm thấy một nửa tá bài đăng trên mạng này, nhưng không ai trong số họ thực sự trả lời câu hỏi.

Tôi muốn thiết lập GPU nvidia của mình để chỉ tính toán, không lái màn hình. Nhưng khi tôi chuyển sang sử dụng GPU Intel trong cấu hình nvidia-Prime, tôi không còn có thể tải mô-đun nvidia nữa.

modprobe: ERROR: could not insert 'nvidia_352': No such device

Không có mô-đun, CUDA không hoạt động, rõ ràng.

Vậy chính xác thì nvidia-Prime đang làm gì khiến nó không thể tải mô-đun? Nó không nằm trong danh sách đen. Không có tệp xorg.conf, vậy làm thế nào để hệ thống biết sử dụng GPU Intel thay vì tệp rời rạc?

Tôi đang sử dụng Dell 5510 Precision với nhà máy Ubuntu 14.04 được cài đặt và GPU của tôi là Quadro M1000M.

Một số gợi ý sử dụng ong nghệ, nhưng điều đó không cần thiết cho tải tính toán thuần túy.

Ngoài ra, rõ ràng ong nghệ có thể tải mô-đun. Vậy chính xác thì nó đang làm gì?

Cập nhật: Vậy tại sao dường như tôi luôn tìm thấy câu trả lời khi cuối cùng tôi đăng câu hỏi, sau nhiều giờ cố gắng tìm ra nó. Đây thực tế chỉ là một câu trả lời một phần, nhưng tôi đang nói về một cái gì đó.

Cho đến nay tôi đã xác định rằng nguyên tố thực hiện ít nhất hai điều:

  • Tắt GPU bằng cách sử dụng bbswitch.
  • Thay đổi các lựa chọn thay thế cho /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf.

Bằng cách sử dụng bbswitch để bật lại GPU, giờ đây tôi có thể tải mô-đun NVIDIA.

Nhưng câu hỏi vẫn còn là: cách tốt nhất để cấu hình hệ thống sử dụng thẻ NVIDIA chỉ để tính toán là gì?

Tôi có nên đặt nvidia-Prime sử dụng GPU Intel và cố gắng tự làm sáng tỏ những gì đã làm để CUDA hoạt động không?

Làm cách nào để đảm bảo hệ thống vẫn sử dụng GPU Intel cho màn hình?

Làm thế nào tôi có thể đơn giản là vô hiệu hóa NVIDIA Prime và định cấu hình tất cả bằng tay?

Hay tôi nên từ bỏ và sử dụng Bumblebee và optirun? Những bất lợi của điều này nếu có?

Có khuyến nghị nào không?


Bạn có thể tắt màn hình trên GPU trong ứng dụng Cài đặt máy chủ NVIDIA X không?
Roger Dahl

Tiện ích NVIDIA chỉ cho phép bạn chọn giữa GPU Intel và NVIDIA. Nó không cung cấp các cài đặt chi tiết tốt, chẳng hạn như sử dụng thẻ nào cho màn hình.
orodbhen

Câu trả lời:


5

Trong trường hợp của tôi, tôi thấy rằng thẻ NVidia không thực sự bị tắt và điều duy nhất tôi thực sự cần làm để chạy mã CUDA là:

export LD_LIBRARY_PATH=/usr/lib/nvidia-352

trong shell nơi tôi muốn chạy nó (tôi giả sử rằng việc thay đổi toàn cầu cài đặt thay thế sẽ phá vỡ compiz, v.v., v.v.)

Để đi đến điểm này (trên Dell Optiplex 7010, với Ubuntu 14.04, CUDA 7.5 và GTX 980) tôi tin rằng các bước là:

  1. Sử dụng tab Cấu hình PRIME để chọn Intel
  2. Khởi động lại và chọn Intel làm mặc định trong BIOS
  3. Tắt máy tính
  4. Cắm màn hình vào video trên tàu :)

Mọi thứ dường như đang hoạt động tốt cho đến nay (nvidia-smi thấy thẻ, mẫu cuda chạy, theano sử dụng thẻ, v.v ...)


1
Vâng, thật không may, dường như không có một giải pháp nhất quán, đó là lý do tại sao tôi thực sự muốn nhấn mạnh những gì đang diễn ra dưới mui xe.
orodbhen

2

Tôi tin rằng tôi đã tìm thấy ít nhất một giải pháp khó hiểu cho vấn đề này, như được mô tả trong bản cập nhật cho bài viết gốc của tôi. Thực sự có hai giải pháp tôi tìm thấy, mặc dù tôi chắc chắn có những giải pháp khác.

1 - Với Prime ở chế độ Intel, bật lại thẻ NVIDIA qua bbswitch , sau đó chạy modprobe nvidiađể tải mô-đun và tạo các nút thiết bị.

2 - Sử dụng optirun Bumblebee để khởi chạy phiên bash từ đó bạn có thể thực hiện tất cả nội dung CUDA của mình.

Cả hai giải pháp này đều cho phép bạn sử dụng đồ họa trên bo mạch cho màn hình của mình, trong khi sử dụng thẻ NVIDIA để tính toán tải. Giải pháp optirun có vẻ linh hoạt hơn, nhưng tôi thích giải pháp đầu tiên vì sự tối giản của nó.

Tôi hy vọng ai đó hiểu biết nhiều hơn sẽ cải thiện câu trả lời này.


bạn có thể giải thích tùy chọn đầu tiên rõ ràng hơn? Làm thế nào bạn bật và tắt thẻ bằng bbswitch?
Abonec

Tôi thực sự đã tìm ra cách để ong nghệ hoạt động tốt và tôi sẽ cập nhật câu trả lời của mình khi có thời gian. Tôi cơ bản làm theo điều này . Thật đáng thất vọng khi những thứ này được ghi chép lại quá kém, bởi vì nó thực sự khá đơn giản.
orodbhen

2

Tôi chỉ sử dụng thẻ NVIDIA cho các lần thực thi CUDA và tìm hiểu phương pháp này:

Tất cả thời gian tôi sử dụng thẻ intel và nó được xác nhận bằng lệnh lspci | grep -E "VGA|3D":

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)

Trong hàng tương ứng cho thẻ NVIDIA bạn sẽ thấy (rev ff)có nghĩa là nó đã tắt.

Để bật thẻ và sử dụng nó cho các tính toán CUDA, tôi sử dụng hai lệnh sau:

sudo prime-select nvidia
sudo prime-switch

Sau lspci | grep -E "VGA|3D"báo cáo lệnh đó :

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

Thông báo về (rev a2), không (rev ff)trong hàng tương ứng. Bây giờ thẻ đã sẵn sàng để tính toán.

Sau khi tính toán, tôi sử dụng các hành động lạc hậu:

sudo prime-select intel
sudo prime-switch

lspci | grep -E "VGA|3D"báo cáo:

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)

Vì vậy, về cơ bản, bạn chỉ cần đăng nhập lại sau khi chuyển đổi bằng số nguyên tố, nếu bạn muốn chuyển đổi GPU nào đang chạy màn hình? Tôi đã không mặc dù điều đó, nhưng nó có ý nghĩa. Tất nhiên, bạn cần đảm bảo rằng bạn chuyển trở lại trước khi đăng xuất hoặc khởi động lại.
orodbhen

Tôi sử dụng phương pháp này. Tôi đăng nhập với cấu hình intel đang hoạt động để Xorg và firefox không sử dụng GPU. Sau đó, tôi chuyển sang cấu hình nvidia và tất cả công việc CUDA của tôi sau đó đi trên GPU và không phải cạnh tranh với firefox và Xorg cho bộ nhớ :)!
John

0

Trong trường hợp ai đó vẫn tìm thấy vấn đề sau khi làm theo các bước trong câu trả lời được chấp nhận, hãy thử điều này:

echo "install bbswitch /bin/true" > /etc/modprobe.d/blacklist-bbswitch.conf
update-initramfs -u

Nó sẽ vô hiệu hóa bbswitch hoàn toàn. Hạn chế là bạn sẽ không thể tắt card NVIDIA để tiết kiệm năng lượng (Xorg vẫn sử dụng đồ họa tích hợp, miễn là prime-select intel).


0

Tôi đang sử dụng 1070 ti với thinkpad T420 trong một egpu được thiết lập để khai thác tiền điện tử trong khi tôi làm việc. Về lý thuyết, GPU sẽ tự trả tiền sau một vài tháng theo cách này.

Tôi thấy rằng với nvidia 387 xuất LD_LIBRARY_PATH = / usr / lib / nvidia-387 đã làm việc với ethminer bằng cuda.

Tuy nhiên, cách duy nhất tôi có thể khiến hệ thống tiếp tục hoạt động sau khi "intel select Prime" là nếu tôi có một màn hình thứ hai cắm vào thẻ khi tôi thực hiện lựa chọn và đăng xuất. Nếu không, tôi sẽ gặp lỗi "Hệ thống đang chạy ở chế độ đồ họa thấp" hoặc màn hình trống liên tục. Tất nhiên, khi tôi đăng nhập chạy đồ họa intel, màn hình cắm vào GPU sẽ không hiển thị gì, vì vậy tôi phải rút phích cắm ra khỏi gpu và cắm lại vào hệ thống (đầu ra dock DVI) để chạy thiết lập màn hình đấu tay đôi của tôi .

Tôi tin rằng điều này là do trình quản lý gpu phát hiện ra rằng bbswitch không hoạt động và sau đó xóa cấu hình xorg.

Tôi đang đăng bài này để thể hiện cách giải quyết cho một số ít người có thể gặp tình huống tương tự, nhưng cũng để xem liệu có ai có ý tưởng ngăn chặn điều này xảy ra hay không, vì phải di chuyển dây cáp đó cho mỗi lần khởi động lại là một chút bất tiện.

log_file: /var/log/gpu-manager.log

last_boot_file: / var / lib / ub Ubuntu-driver-common / last_gfx_boot new_boot_file: / var / lib / ub Ubuntu-driver-common / last_gfx_boot không thể truy cập / run / udc-fglrx /modules/4.4.0-104-generic/updates/dkms Tìm kiếm các mô-đun nvidia trong /lib/modules/4.4.0-104-generic/updates/dkms Đã tìm thấy mô-đun nvidia: nvidia_387_drm.ko Có nvidia đã được tải? không nvidia có nằm trong danh sách đen không? Có fglrx được tải? không fglrx không tải? không fglrx có nằm trong danh sách đen không? không tải intel? Có radeon được tải? không radeon có nằm trong danh sách đen không? không amdgpu có được tải không? không amdgpu có nằm trong danh sách đen không? không được tải nouveau? không nouveau có nằm trong danh sách đen không? có Mô-đun hạt nhân fglrx có sẵn không? không Có mô-đun hạt nhân nvidia có sẵn không? có Nhà cung cấp / Id thiết bị: 8086: 126 BusID "PCI: 0 @ 0: 2: 0" Có phải boot vga không? có Nhà cung cấp / Id thiết bị: 10de: 1b82 BusID "PCI: conf Thay thế lõi hiện tại: (null) Thay thế egl hiện tại: /usr/lib/nvidia-387-prime/ld.so.conf nvidia có được bật không? không nvidia egl được kích hoạt? không fglrx được kích hoạt? không mesa có được kích hoạt không? không mesa egl được kích hoạt? không được kích hoạt? không được kích hoạt chính? có Prime egl được kích hoạt không? Có nvidia có sẵn không? có nvidia egl có sẵn không? không fglrx có sẵn không? không có lõi fglrx có sẵn không? không mesa có sẵn không? Có mesa egl có sẵn không? vâng Có sẵn pे không? không có sẵn số nguyên tố? có là eg egl có sẵn không? không phát hiện thấy Intel IGP hệ thống lai Intel Trình điều khiển Nvidia phiên bản 387.34 được phát hiện / sys / class / dmi / id / product_version = "ThinkPad T420" / sys / class / dmi / id / product_name = "4236L23" Lần thử đầu tiên: bbswitch không tải quirks Tham số "load_state = -1 unload_state = 1" Lỗi: có thể ' t mở / Proc / acpi / bbswitch Xóa xorg.conf. Đường dẫn: /etc/X11/xorg.conf không thể truy cập /usr/share/gpu-manager.d/hyoped-power-saving Không cần thay đổi trạng thái bbswitch hiện tại

Nếu tôi nano xorg.conf sau này thì nó trống rỗng. Tôi đang đăng bài này sau khi thực hiện thủ thuật chuyển đổi màn hình, với quá trình khai thác đang diễn ra trong nền và xorg.conf của tôi vẫn trống. Vì vậy, dự đoán của tôi là vì một số lý do khi tôi giữ màn hình cắm vào GPU khi bật lại lightdm, không có vấn đề gì khi xorg.conf của tôi bị xóa. Có ý kiến ​​gì không?


Ngoài ra ... Tôi có danh sách đen bbswitch như được đề xuất ở trên, bởi vì tôi sẽ gặp lỗi liên tục với nó khi khởi động. Tôi đã có thể khởi động vào chế độ intel bằng nvidia-384 một hoặc hai lần, nhưng tôi gặp khó khăn khi khai thác với điều đó và nghĩ rằng đó có thể là do hỗ trợ 1070 ti đã được thêm vào với nvidia-387.
chào
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.