Tôi đang sử dụng GeForce 8400M GS trên Ubuntu 10.04 và tôi đang học lập trình CUDA. Tôi đang viết và chạy vài chương trình cơ bản. Tôi đã sử dụng cudaMalloc, và nó giữ cho tôi một lỗi cho đến khi tôi chạy mã như là người chủ. Tuy nhiên, tôi đã phải chạy mã như root chỉ một lần. Sau đó, ngay cả khi tôi chạy mã như người dùng bình thường, tôi không nhận được một lỗi trên malloc. Chuyện gì vậy?Truy cập root cần thiết cho CUDA?
Trả lời
Điều này có thể do GPU của bạn không được khởi chạy đúng lúc khởi động. Tôi đã đi qua vấn đề này khi sử dụng Ubuntu Server và các cài đặt khác, nơi một máy chủ X không được bắt đầu tự động. Hãy thử các cách sau để khắc phục sự cố:
Tạo thư mục cho tập lệnh để khởi chạy GPU của bạn. Tôi thường sử dụng /root/bin
. Trong thư mục này, tạo một tập tin gọi là cudainit.sh
với đoạn mã sau trong đó (kịch bản này đến từ các diễn đàn Nvidia).
#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
N3D=`/usr/bin/lspci | grep -i NVIDIA | grep "3D controller" | wc -l`
NVGA=`/usr/bin/lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i;
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
Bây giờ chúng ta cần làm cho tập lệnh này chạy tự động khi khởi động. Chỉnh sửa /etc/rc.local
để trông giống như sau.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#
# Init CUDA for all users
#
/root/bin/cudainit.sh
exit 0
Khởi động lại máy tính và cố gắng chạy chương trình CUDA của bạn với tư cách người dùng thông thường. Nếu tôi đúng về vấn đề là gì, thì nó phải được sửa.
Để làm việc với Ubuntu 14.04, tôi theo dõi https://devtalk.nvidia.com/default/topic/699610/linux/334-21-driver-returns-999-on-cuinit-cuda-/ để thêm nvidia-uvm
vào etc/modules
và thêm dòng vào quy tắc tùy chỉnh udev. Tạo /etc/udev/rules.d/70-nvidia-uvm.rules
với dòng này:
KERNEL=="nvidia_uvm", RUN+="/bin/bash -c '/bin/mknod -m 666 /dev/nvidia-uvm c $(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0;'"
Tôi không hiểu tại sao sudo modprobe nvidia-uvm
làm việc để tạo ra một hợp /dev/nvidia-uvm
(cũng như sudo cuda_program
) nhưng việc niêm yết /etc/modules
đòi hỏi các quy tắc udev.
- 1. Android systrace có yêu cầu quyền truy cập root không?
- 2. MySQL: không thể truy cập tài khoản root
- 3. ANDROID: Cách truy cập root trong ứng dụng Android?
- 4. Truy cập vô hạn trong Meta Integer Square Root
- 5. Truy vấn mẫu cho các biến cần thiết?
- 6. Truy cập bị từ chối cho người dùng root trong dòng lệnh MySQL
- 7. MYSQL Truy cập bị từ chối cho người dùng 'root' @ 'localhost'
- 8. EntityState.Modified có cần thiết cho bản cập nhật không?
- 9. Làm cách nào để thiết lập npm (trình quản lý gói nút) mà không có quyền truy cập root?
- 10. Android adb đẩy đến vị trí trong thiết bị không có sdcard và không có quyền truy cập root
- 11. Thiết lập CERN ROOT với một IDE
- 12. Truy cập bộ nhớ toàn cầu không được hợp nhất do truy cập gián tiếp trong CUDA
- 13. Cho phép ứng dụng Android root
- 14. Mẫu thiết kế cho Lớp Truy cập Dữ liệu
- 15. Mysql2 :: Lỗi (Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: NO)):
- 16. mysql_exceptions.OperationalError: (1045, "Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: YES)")
- 17. Truy cập webcam mà không cần Flash
- 18. Rsync mà không cần truy cập SSH
- 19. Có cần thiết truy cập vào một SQLiteDatabase trong AsyncTask không?
- 20. Phần cứng CUDA có cần thiết vào thời gian biên dịch không?
- 21. mysql_real_escape_string() cho biến $ _SESSION cần thiết?
- 22. Truy cập bị từ chối đối với User 'root' @ 'localhost' (sử dụng mật khẩu: YES)
- 23. Control.IsHandleCreated cần thiết cho điều gì?
- 24. SQLSTATE [28000] [1045] Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: YES) Symfony2
- 25. Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: YES) - Không có đặc quyền?
- 26. MySQL nói: Documentation # 1045 - Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: NO)
- 27. xampp localhost phpmyadmin Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: YES)
- 28. "Một thẻ truy cập là cần thiết để yêu cầu cập khu vực này", trong khi truy cập vào một album/ảnh với Facebook php sdk
- 29. Làm thế nào để cài đặt mô-đun python mà không có quyền truy cập root?
- 30. ID thiết bị NVAPI liên quan đến ID thiết bị CUDA như thế nào?
Bạn cũng đã biên dịch mã dưới dạng gốc một lần? Có lẽ bạn cần thiết để có được quyền truy cập tệp của bạn được cập nhật trước khi trình biên dịch có thể ghi đè lên tệp nhị phân của bạn. –