圖片來源:Stanford EdTech |
首先安裝 NVIDIA 的驅動程式(driver),一般如果想安裝最新版的驅動程式,就要自己連上 NVIDIA 的官方網站下載最新的安裝檔,自己安裝,但若是沒有特別需求,可以直接用 Ubuntu 中的 apt 來裝比較快。
首先更新一下 apt:
sudo apt-get update
接著安裝 NVIDIA driver:
sudo apt-get install linux-source linux-headers-generic nvidia-current-updates
再裝個 mesa-utils 等一下測試用:
sudo apt-get install mesa-utils
安裝完 NVIDIA driver 後,記得要重新啟動電腦,讓新的驅動程式生效。
接著看看驅動程式有沒有正常,用 glxinfo 這個指令查一查:
glxinfo
他會輸出 GLX 相關的資訊,不過我們有興趣的只是他有沒有正確抓到 NVIDIA 的顯示卡,只要看 OpenGL vendor、renderer 與 version 就可以了,正常的話,大約會像這樣:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro FX 3700/PCIe/SSE2
OpenGL version string: 3.3.0 NVIDIA 304.51
這裡顯示他已經抓到 NVIDIA Quadro FX 3700 這張卡,而 NVIDIA driver 的版本是 304.51,這樣就沒問題了。
接著安裝 NVIDIA CUDA,一樣可以直接使用 apt 來裝:
apt-get install nvidia-cuda-dev nvidia-cuda-toolkit
這裡如果是一個新灌好的 Ubuntu Linux,通常會下載好幾百 MB 的套件,像是編譯器等等,因為 Ubuntu 在安裝時都沒有安這些東西,所以要等一會兒。
安裝完成後,基本上 CUDA 就可以使用了,不過 apt 的套件裡面好像沒有看到範例程式,若是要範例程式可能就要上 NVIDIA 檔網站下載了。
另外,透過 apt 安裝的 CUDA 通常都不是最新版的,因為 NVIDIA CUDA 更新太快,社群通常沒辦法馬上就跟上,版本可用 nvcc 來檢查:
nvcc -V
輸出為:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Thu_Apr__5_00:24:31_PDT_2012
Cuda compilation tools, release 4.2, V0.2.1221
這次我們裝的版本是 4.2 的,並不是最新版,如果要最新版的 CUDA,當然還是要上 NVIDIA 的網站下載,再自行安裝。
您好~ 想請問一下我在Cuda安裝遇到的問題
回覆刪除我目前是用
OS :Ubuntu LST version
GPU:Nvidia quadro 2000
我用apt-get 的方法安裝,然後執行glxinfo
name of display: localhost:10.0
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
display: localhost:10 screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read,
GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier,
GLX_SGIX_fbconfig
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_EXT_swap_control, GLX_EXT_swap_control_tear,
GLX_EXT_buffer_age, GLX_ARB_create_context,
GLX_ARB_create_context_profile, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float, GLX_EXT_fbconfig_packed_float,
GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB,
GLX_NV_present_video, GLX_NV_copy_image, GLX_NV_multisample_coverage,
GLX_NV_video_capture, GLX_EXT_create_context_es_profile,
GLX_EXT_create_context_es2_profile, GLX_ARB_create_context_robustness
GLX version: 1.2
GLX extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_SGIX_fbconfig, GLX_ARB_get_proc_address
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 5400 Series
OpenGL version string: 1.2 (4.0.10243 Compatibility Profile Context)
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_imaging, GL_ARB_multitexture,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,
GL_ARB_texture_border_clamp, GL_ARB_texture_cube_map,
GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_transpose_matrix,
GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays,
GL_EXT_packed_pixels, GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
GL_EXT_texture3D, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_lod,
GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_vertex_array,
GL_ATI_texture_mirror_once, GL_IBM_texture_mirrored_repeat,
GL_NV_blend_square, GL_NV_texgen_reflection, GL_SGIS_generate_mipmap,
GL_SGIS_texture_lod
明顯地出了問題OpenGL 的render顯示為
原本主機的內建顯卡,而不是外接的這張卡,
然後之後執行cuda 的device query 都會顯示找不到nvidia 的卡,想請問一下怎麼處理
To Cheng-Yang Fu:
回覆刪除顯示卡有插好嗎?
lspci 的輸出為何?
顯卡應該是有插好QQ
回覆刪除lspci |grep VGA
01:00.1 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200EH
07:00.0 VGA compatible controller: NVIDIA Corporation GF106GL [Quadro 2000] (rev a1)
有顯示Quadro 2000這張卡
To Cheng-Yang Fu:
回覆刪除ls /dev|grep nvidia 的輸出為何?
ls /dev|grep nvidia
回覆刪除執行後是空白的,我這點覺得很奇怪,但是不知道怎麼解決
To Cheng-Yang Fu:
回覆刪除按照這裡的方式建立 /dev 下面的檔案看看:
http://sealmemory.blogspot.tw/2012/01/x-window-cuda.html
感謝~~~ 目前可以執行
回覆刪除因為之前我嘗試灌bumblebee來解決這個問題,但是bumblebee會black掉/sbin/modprobe載入的nvidia,所以失敗,把bumblebee移除重新執行提供的script就可以了
這台機器我目前是當作server來使用,執行sdk裡面運算的部分都可以,但是牽扯到繪圖不能執行,可以請問一下如果解決這步驟是要如何?
顯示的錯誤訊息
freeglut (./simpleTexture3D): ERROR: Internal error in function fgOpenWindow
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 4 (X_DestroyWindow)
Resource id in failed request: 0x0
Serial number of failed request: 20
Current serial number in output stream: 23
To Cheng-Yang Fu:
回覆刪除您是用 SSH 遠端執行這隻程式嗎?
還是直接在這台 Server 本機執行?
我用ssh 或是遠端桌面回去兩種都有,遠端桌面會去的error有些不同
回覆刪除Serial number of failed request: 24
Current serial number in output stream: 27
最下面兩條訊息不同,其他錯誤訊息同ssh
To Cheng-Yang Fu:
回覆刪除SSH 連線時是否有使用 -X 或 -Y 參數?
Client 端電腦顯示卡是否有支援 OpenGL?
這個我不確定
回覆刪除我是在windows下用putty+Xming 執行需要gui的程式,基本上連回ubuntu執行都沒問題
To Cheng-Yang Fu:
回覆刪除那執行 glxgears 是否正常?
可以
回覆刪除15405 frames in 5.0 seconds = 3073.774 FPS
這個fps代表有使用到nvidia 的顯卡嗎?
To Cheng-Yang Fu:
回覆刪除這個指令會使用 Client 的顯示卡,
這樣看起來 Client 的 3D 應該是正常的。
問題可能是出現在 Server 上,
像是 library 與 kernel module 版本等等,
把錯誤訊息貼到 Google 查查看吧。
沒關係~ 先謝謝了
回覆刪除