锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 瀹夎瀹樼綉鏈鏂扮殑鏄懼崱椹卞姩錛?/p>
瀹夎鏂規硶鍙互鍙傝冿細 銆奤buntu11.04涓嬪畨瑁匩vidia鏄懼崱椹卞姩鐨勬柟娉曘?/a> 鐒跺悗浠嶯VIDIA緗戠珯錛坔ttp://developer.nvidia.com/cuda-downloads錛変笅杞?/p>
CUDA Toolkit for Ubuntu Linux 10.10錛?/p>
GPU Computing SDK錛?/p>
CUDA Tools SDK銆?/p>
鐢變簬鍦╱buntu11.04涓嬫棤娉曟甯哥殑鐢╯h鍛戒護榪涜瀹夎錛屾墍浠ラ渶瑕佺敤浠ヤ笅鍛戒護榪涜瀹夎錛?/p>
娉ㄦ剰涓婇潰宸ュ叿鍖呯殑鍚嶇О瑕佽窡浣犱笅杞界殑宸ュ叿鍖呭悕縐頒竴鑷達紝涓嶅悓緋葷粺鐗堟湰鐨勬枃浠跺悕鐣ユ湁宸埆銆?/p>
棰勮鏄畨瑁呭湪/usr/local/cuda 鐩綍涓嬶紝寤鴻灝變緷鐓т粬鐨勯璁捐礬寰勫畨瑁呫?/p>
瀹夎瀹屾垚鍚庤璁懼畾Library 鐨凱ath錛屾湁涓や釜鏂瑰紡: (1)涓縐嶆槸鏇存敼LD_LIBRARY_PATH 鐜鍙樻暟錛?/p>
鍦ㄧ敤鎴峰悕鐨勭洰褰曚笅寮.bashrc鏂囦歡錛屽彲浠ラ氳繃vi鍛戒護鎴栬単edit鍛戒護榪涜緙栬緫錛屾垜鏇村枩嬈㈠悗鑰咃紝鍦ㄦ湯灝懼鍔犲叆涓よ鍛戒護錛?/p>
濡傛灉鏄?4浣嶇郴緇熺殑璇濋渶瑕佸皢涓婁竴琛岀殑lib鏀逛負lib64,鐒跺悗淇濆瓨銆?/p>
(2)鍙︿竴縐嶆柟娉曟槸鐩存帴鍔犲湪/etc/ld.so.conf.d/ 閲岄潰錛?/p>
濡傛灉鏄?4浣嶇郴緇熷悓鏍峰皢lib鏀逛負lib64 鍐嶈瀹歅ATH錛? 棰勮鏄畨瑁呭湪/usr/local/cuda/CUDAToolsSDK 鐩綍涓嬨?/p>
棰勮鏄畨瑁呭湪鑷繁甯愬彿鐨剘/NVIDIA_GPU_Computing_SDK 鐩綍涓嬶紝瀹夎鏃惰璁劇疆CUDA 瀹夎鐨勮礬寰勶細 Enter CUDA install path (default /usr/local/cuda): 鑻UDA 閮芥槸渚濈収棰勮璺緞瀹夎錛屽垯榪欓噷灝變笉闇瑕佹洿鍔ㄣ?/p>
CUDA 4.0 鐩墠鍙敮鎻村埌gcc 4.4錛岃嫢鏄彧鏈夎gcc 4.5 鐨勮瘽錛岃繕瑕佸啀瑁呬竴涓媑cc 4.4 鎵嶈兘緙栬瘧錛?nbsp; 鎺ョ潃瑕佽緙栬瘧鏃惰兘澶熶嬌鐢╣cc 4.4錛屼竴縐嶆柟寮忔槸灝嗙郴緇熺殑/usr/bin/gcc 鏀硅繛鍒?usr/bin/gcc-4.4錛?usr/bin/g++ 涔熶竴鏍鋒敼榪炲埌/usr/bin/ g++-4.4錛屾垨鏄嬌鐢╱pdate-alternative錛? 鎺ョ潃浣跨敤update-alternatives 閫夋嫨4.4 鐗堢殑gcc錛? 鎵ц鍚庨夋嫨gcc-4.4錛屽啀鎺ョ潃閫夋嫨4.4 鐗堢殑g++錛? 鎵ц鍚庨夋嫨g++-4.4 鑻ヤ笉鎯充慨鏀規暣涓郴緇熺殑璁懼畾錛屾湁鍙︿竴涓姙娉曞彲浠ュ鐞嗭紝鑷繁寤轟竴涓獈/bin 鐩綍錛岀劧鍚庡緩绔媑cc-4.4 涓巊++-4.4 鐨勮繛緇擄紝鍐嶅皢榪欎釜璺緞鍔犲叆鑷繁鐨凱ATH 涓紝榪欐牱灝變笉浼氬獎鍝嶅叾浠栫殑紼嬪紡錛?/p>
鐒跺悗鍦ㄦ瘡嬈¤緙栬瘧CUDA 紼嬪紡鍓嶆墽琛岋細 榪欐牱灝變笉闇瑕佹洿鍔ㄥ埌緋葷粺鍏朵粬紼嬪紡鐨勮瀹氫簡銆? 鑻ユ槸騫歌繍鐨勮瘽錛岃繖鏍峰氨澶у叕鍛婃垚浜嗭紝浣嗛氬父閮戒細鏈変簺闂錛屽儚緙栬瘧鏃惰嫢鏄嚭鐜扮被浼艱繖鏍風殑闂錛? 鏄〃紺烘湁涓浜涘繀瑕佺殑Library 娌¤錛岀敤apt-cache 鎵句竴涓嬪啀鐢╝pt-get 瑁呰搗鏉ュ氨鍙互浜嗭細 鎴戝畨瑁呯殑鏃跺欏氨鍑虹幇浜?/p>
榪欏叾瀹炴槸鍥犱負娌℃湁閾炬帴鍒版紜殑libGL鐨勫簱錛岃繖鏃跺欐墽琛屼互涓嬪懡浠?/p>
鎵ц瀹屼笂榪板懡浠ゅ悗錛屼細鐪嬭鏈変竴涓笌浣犳寜瑁呯殑椹卞姩紼嬪簭鐩哥被浼肩殑緙栧彿鍛僺o錛屽鎴戠殑椹卞姩紼嬪簭鐗堟湰鏄?80.13灝變細鏈変竴涓?/p>
libGL.so.280.13鐨勬枃浠訛紝鐒跺悗鎵ц浠ヤ笅鍛戒護銆傚綋鐒訛紝榪欎釜闇瑕乺oot鏉冮檺 瀹夎瀹屾垚涔嬪悗灝辮媯楠屼竴涓婥UDA瀹夎鏄惁鎴愬姛 榪涘叆~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release鐩綍涓嬬湅鐪嬫槸涓嶆槸鏈夊緢澶氬彲鎵ц鏂囦歡 娉ㄦ剰deviceQuery榪欎釜鍙墽琛屾枃浠訛紝鎴戜滑灝辨槸瑕佹墽琛屽畠鏉ュ垽鏂嚜宸辯殑CUDA鏄惁瀹夎鎴愬姛錛岃緭鍏?/deviceQuery鍛戒護鏉ユ墽琛屽畠錛屽鏋滃嚭鐜頒綘鐨勬樉鍗′俊鎭垯璇存槑CUDA宸茬粡瀹夎鎴愬姛銆?/p> lz鐨勬樉鍗℃槸GeForce GTX 460SE銆傝屾湰浜烘槸涓涓伆甯哥伆甯哥殑鏂版墜錛岀粨鍚堢綉涓婄殑鏁欑▼鍜岃嚜宸插薄璇曞薄璐ョ殑緇忛獙緇堜簬鎶婃樉鍗¢┍鍔ㄥ畨瑁呮垚鍔熶簡 鐪嬪埌濂藉鏁欑▼閮芥槸淇敼宸叉湁鐨刡lacklist.conf,鏉ヨВ鍐蟲闂錛屼絾鎴戜慨鏀逛互鍚庡嚭鐜頒簡Ctrl + Alt +F1榪涘叆涓嶄簡絎竴鎺у埗鍙幫紝鐒跺悗鎵緉vidia鐨勫畼鏂硅鏄庯紝鍐欑殑鏄緩绔嬩竴涓柊鐨刣isable-nouveau.conf鐒跺悗閰嶇疆, 璐村嚭鏉ュソ鏂逛究澶у鍙傝冿細 鍏蜂綋姝ヨ仛錛?br />1.鍘誨畼鏂逛笅杞芥渶鏂扮増鐨刵Vidia椹卞姩錛岀幇鏈鏂扮増鏈槸Nvidia-Linux-x86-280.13.run http://www.nvidia.cn/Download/index.aspx?lang=cn 3.寤虹珛騫朵慨鏀筪isable-nouveau.conf 鍦ㄩ噷闈㈠~鍏ヤ袱琛屽唴瀹癸細 鐒跺悗閲嶅惎鐢佃剳錛岄噸鍚箣鍚庝綘浼氬彂鐜扮敾闈㈣川閲忔槑鏄鵑檷浣庯紝璇佹槑浠g爜鐢熸晥浜嗐?/p>
榪欐槸鍥犱負Nvidia瀹樻柟椹卞姩涓嶈兘榪愯鍦╔-server涓嬶紝鎵浠ヨ鍏抽棴GUI銆?/p>
娉ㄦ剰鍖哄垎澶у皬鍐欙紝瀹夎榪囩▼涓嚭鐜版洿鏂幫紝閫夋嫨NO錛屽畨瑁呭畬姣曪紝鐒跺悗閰嶇疆Xconfig錛?/p>
6.閰嶇疆濂戒箣鍚庯紝閲嶅惎鍥懼艦鐣岄潰錛孫k~ 絎竴姝ワ細 涓嬭澆鐩稿簲鐨刣eriver鍜宼oolkit錛屾渶濂芥妸sdk涔熶笅杞芥潵瀹夎濂姐?/p>
渚濇瀹夎榪欎笁涓蔣浠躲傝繖閲屽氨涓嶈璁鴻繖涓閮ㄥ垎浜嗐傝繖閮ㄥ垎瀹炲湪鏄病寰楄銆?/p>
絎簩姝ワ細寤虹珛鏂扮┖宸ョ▼ 絎笁姝ワ細閫夋嫨緙栬瘧鐢熸垚瑙勫垯 絎洓姝ワ細娣誨姞CUDA鏂囦歡鍙沖嚮浣犵殑欏圭洰錛岄夋嫨娣誨姞-銆嬫柊寤洪」錛岀劧鍚庡弬鐓у浘紺?/p>
絎簲姝ワ細娣誨姞閾炬帴搴擄紝鍙沖嚮欏圭洰-銆嬪睘鎬?/p>
鏈鍚庝竴姝ワ細鐢熸垚 鎴戝湪鍐呮牳鍑芥暟涓嬌鐢ㄤ互涓嬭鍙ワ細 澶寸柤鐨勮В鍐蟲諱細鏄ソ鐨勩傛榪庡ぇ瀹剁殑椹昏凍錛屾垜緇х畫銆傘? 1銆侀鍏堝井杞彁渚涜繃鐨勫悇縐嶉」鐩ā鐗堝彧鏄畝鍖栦簡鎴戜滑鐨勫紑鍙戞椂闂達紝瀹冪殑瀹炶川榪樻槸C鎴栬匔++璇█銆傛墍浠ユ垜浠彧瑕佹妸紲為┈MFC欏圭洰鐞嗚В涓烘櫘閫氱殑C\C++欏圭洰灝卞彲浠ヤ簡銆?/p>
2銆佸熀浜庣涓鐐癸紝鎴戜滑搴旇鍋氫簺浠涔堥偅錛熷彧瑕佸湪鎴戜滑鐨凪FC欏圭洰涓嬫寜鐓т竴鑸珻\C++紼嬪簭娣誨姞CUDA浠g爜灝卞彲浠ヤ簡銆傝繖涓鐐規垜浠簲璇ユ濊冿紝娣誨姞浜嗕唬鐮佸氨鍙互浜嗗悧錛熷綋鐒朵笉鍙互錛佸簲璇ユ濊冧竴涓嬫枃浠剁殑緙栬瘧榪囩▼錛屽湪娌℃湁鎸囧畾緙栬瘧鍣ㄧ殑鎯呭喌涓嬩綘鐨凜UDA紼嬪簭鎬庝箞鍙兘琚紜紪璇戦偅錛熶綘蹇呴』閫夋嫨.cu鏂囦歡鐨勭紪璇戣鍒欙紒濡傛灉浣犱嬌鐢╮untime錛屼綘瑕佹坊鍔犺嚜瀹氫箟緙栬瘧瑙勫垯錛岀劧鍚庝慨鏀逛綘鐨刢u鏂囦歡鐨勫睘鎬э紝鍛婅瘔VS浣犵殑cu闂環鏄皝鏉ョ紪璇戠殑銆?/p>
3銆佹牴鎹畁vcc鐨勭紪璇戣鍒欙紝cu鏂囦歡棣栧厛浼氳緙栬瘧錛岀劧鍚庣敓鎴愪竴澶у爢鐨刼bj鏂囦歡錛岀劧鍚庢槸寰蔣鐨勭紪璇戝櫒寮濮嬪伐浣滐紝浠栫紪璇戜簡鍓╀笅鐨勭▼搴忋傜劧鍚庢槸榪炴帴鍣紝瀹冭繛鎺ヤ簡鎵鏈塷bj錛宭ib銆傜劧鍚庝綘濡傛灉鎯蟲墽琛岋紝鎵ц灝辨槸浜嗐?/p>
4銆佸鏋滃ぇ瀹惰寰楄繖縐嶆柟娉曚笉鍙潬錛屽畬鍏ㄥ彲浠ユ妸cuda鐨勭▼搴忓啓鎴怐LL鐨勶紝鐒跺悗鍦ㄥぇ瀹舵兂浣跨敤CUDA鐨勭▼搴忎腑娣誨姞lib銆乨ll銆?/p>
浠ヤ笂鏄垜涓漢鐞嗚В錛屽鏈夊彲浠ユ帰璁ㄧ殑闂錛屽彲浠ヨ瘎璁猴紝鎴戜細鍙婃椂鍋氬嚭鍥炵瓟銆?img alt="寰瑧" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif" /> 鏈枃浠UDA4.2涓轟緥璁茶В濡備綍鍦║buntu12.04涓婂畨瑁匔UDA 娉ㄦ剰涓鐐癸紝鍦ㄥ畨瑁呬箣鍓嶏紝蹇呴』紜繚鑷繁鐨凣PU鏄疦VIDIA鐨凣PU錛屽茍涓旀敮鎸丆UDA銆傚鏋滀笉紜畾鑷繁鐨勬樉鍗℃槸鍚︽敮鎸丆UDA錛屽彲浠ュ湪http://developer.nvidia.com/cuda-gpus涓壘鍒版敮鎸丆UDA鐨凣PU鍒楄〃銆傚鏋滀綘鐨勬樉鍗℃槸ATI鐨勶紝鍙互浣跨敤OpenCL鏉ヨ幏寰桮PU鐨勮綆楄祫婧愶紙http://www.khronos.org/opencl錛? 濡傛灉浣犵殑GPU婊¤凍涓婇潰鐨勮姹傦紝涓嬮潰鎴戜滑灝卞紑濮嬪畨瑁呬簡銆?/p>
絎竴姝ワ細涓嬭澆瀹夎鏂囦歡錛屽畨瑁呮枃浠禿river錛宼oolkit錛孲DK銆傚彲浠ュ湪http://developer.nvidia.com/cuda/cuda-toolkit-archive涓嬭澆鍒拌嚜宸辨兂瀹夎鐨勭増鏈傜壒鍒敞鎰忎竴涓嬭嚜宸辯殑緋葷粺鏄灝戜綅鐨勶紝鍦ㄧ粓绔墽琛屼笅闈㈢殑鍛戒護鍙互鐭ラ亾浣犵殑緋葷粺鐨勪綅鏁般?/p>
絎簩姝ワ細瀹夎椹卞姩銆?/p>
紜繚鎵鏈夐渶瑕佺殑涓滆タ閮藉凡緇忓畨瑁呭ソ浜嗐?/p>
涓轟簡涓嶈緋葷粺鎵撴壈鎴戜滑瀹夎椹卞姩錛屾妸涓浜涢渶瑕佺殑妯″潡鍒楀叆榛戝悕鍗曪細 鍦ㄦ墦寮鐨勬枃浠墮噷娣誨姞涓涓嬪嚑琛?/p>
灝嗘枃浠朵繚瀛樺悗閫鍑恒? 涓轟簡鑳藉幓闄ゆ墍鏈塏VIDIA鐨勬畫浣欑墿錛屽湪緇堢涓墽琛屼笅闈㈢殑鍛戒護錛?/p>
榪欎釜鍛戒護鍙兘闇瑕佹墽琛屼竴孌墊椂闂達紝鎵浠ヨ鑰愬績鐨勭瓑絳夈傜瓑瀹冨畬鎴愪簡錛岄噸鏂板惎鍔ㄤ綘鐨勬満鍣ㄣ傚湪鐧誨綍鐣岄潰鍑虹幇鍚庯紝鍏堜笉瑕佺櫥褰曪紝鍦ㄩ敭鐩樹笂鎸変笅Ctrl+Alt+F1緇勫悎閿紝浠ユ枃鏈殑鏂瑰紡鐧誨綍錛屾壘鍒頒綘鐨勯┍鍔ㄥ畨瑁呮枃浠訛紝鎵ц涓嬮潰鐨勫懡浠わ細 榪欓噷devdriver*.run鎸囩殑鏄綘鐨勯┍鍔ㄧ殑鍚嶅瓧銆備笅闈㈡槸瀹夎銆?/p>
瀹夎緇撴潫鍚庯紝閲嶆柊鍚姩緋葷粺銆? 絎笁姝ワ細鐧誨綍鍚庯紝鎵撳紑緇堢錛屽畨瑁卼oolkit 鍦ㄧ粓绔笅榪涘叆toolkit鐨勭洰褰曪紝鎵ц涓嬮潰鐨勫懡浠わ細 cudatoolkit*.run浠h〃浣犵殑toolkit鐨勫畨瑁呮枃浠躲?/p>
榪欐牱瀹夎涔嬪悗榪樿紜繚浣犲畨瑁呯殑鍔ㄦ侀摼鎺ュ簱鍙互琚嚜宸辯殑紼嬪簭鎵懼埌銆傛渶濂藉湪浣跨敤CUDA涔嬪墠鎵ц涓嬮潰鐨勫懡浠ゃ?/p>
瀵逛簬32浣嶇郴緇燂細 瀵逛簬64浣嶇郴緇燂細 絎洓姝ワ細瀹夎sdk銆傚疄闄呬笂錛岃繖涓姝ュ茍涓嶆槸浣跨敤GPU璁$畻鐨勫繀瑕侀儴鍒嗭紝榪欓噷闈㈠彧鏄寘鍚簡涓浜涙湁鐢ㄧ殑渚嬪瓙銆備笉榪囪繕鏄帹鑽愬ぇ瀹跺畨瑁呰繖涓猄DK銆?/p>
鍦ㄧ粓绔笅榪涘叆鍖呭惈SDK鐨勭洰褰曪紝鎵ц涓嬮潰鐨勫懡浠?/p>
cudasdk.run浠h〃浜嗕綘鐨凷DK鐨勫畨瑁呮枃浠躲?/p>
OK浜嗭紝濡傛灉鏈夐棶棰橈紝涓瀹氳鐣欒█濂ャ傘傘?/p>
PS錛氭湰鏂囧弬鑰冧簡涓綃囪嫳鏂囩殑鏂囩珷錛屼笉榪囨垜娌℃湁鎵懼埌閭g瘒鏂囩珷錛岃鏄湁緗戝弸鎵懼埌浜嗭紝鍙互緇欐垜鐣欒█銆傛垜鍔犱笂瀵瑰畠鐨勫紩鐢ㄣ?/p>
鎬繪湁浜涚闉嬫兂鐭ラ亾鎬庝箞鍦–UDA涓嬌鐢ㄤ簩緇存暟緇勶紙[M][N]榪欑綾誨瀷錛夛紝鍏跺疄榪欎釜寰堢畝鍗曪紝涓嶈繃浣犺瀹屽叏寮勬槑鐧斤紝蹇呴』瀵規寚閽堬紝鍦板潃絳夋蹇甸潪甯告竻妤氭墠琛屻傚啓榪欑瘒鍗氬瑙e喅涓嬪ぇ瀹惰繖涓棶棰橈細 1銆侀鍏堣榪頒竴涓嬪湪涓鑸珻璇█涓浣曚嬌鐢ㄤ簩緇存暟緇勩?/p>
2銆佸憡璇変綘濡備綍鍦–UDA涓嬌鐢ㄤ簩緇存暟緇勫彲浠ョ被姣?涓殑鏂規硶錛屼笉榪囦綘瑕佹竻妤氬嚑鐐癸紝榪欏嚑鐐瑰湪浠g爜涔嬪悗璇存槑銆?/p>
鍦–UDA涓嬌鐢ㄤ簩緇存暟緇勭殑鍑犵偣璇存槑錛?/p>
1錛塪a鏄竴涓簩緇村彉閲忥紝涓瀹氭洿涓嶅彲浠ュ湪33琛岀殑鏃跺欐妸ha鏀規垚da錛佷竴瀹氳璁頒綇鏄懼瓨鍜屽唴瀛樻槸鐩鎬簰鐙珛鐨勶紝涓繪満绔殑紼嬪簭涓嶅彲浠ョ洿鎺ユ搷浣滄樉瀛橈紒蹇呴』閫氳繃CUDA 鎻愪緵鐨凙PI鍑芥暟鏉ユ搷浣滐紒 2錛夋敞鎰忓湪鍐呭瓨鐢寵鏃跺己鍒剁被鍨嬭漿鎹?void**)錛?amp;錛夛紝鎬庝箞鎶?**鐨勫彉閲忚漿鎴?*浜嗭紒錛佽繖涓昏鏄疉PI鍊熷彛鍐沖畾鐨勶紝鏈濂借嚜宸辨樉寮忚漿鎹㈡牸寮忥紝閬垮厤涓嶅繀瑕佺殑楹葷儲銆?/p>
3錛夌湅瑙佹暟鎹嫹璐濈殑鍑芥暟浜嗗悧錛岀被鍨嬨佺被鍨嬨佽繕鏄被鍨嬨?/p>
4錛夊埆蹇樹簡閲婃斁鍐呭瓨鍜屾樉瀛橈紒鐪嬭娌★紝榪樻槸綾誨瀷銆?/p>
5錛夊緢甯屾湜榪欑瘒鍗氬鑳藉府鍒板ぇ瀹訛紝鍙槸鎴戠湡鐨勪笉鎺ㄨ崘澶у鍦℅PU涓婁嬌鐢ㄤ簩緇存暟緇勶紒鐪熺殑錛侊紒涓轟粈涔堝憿錛熺粓褰掓槸鏁堢巼鎯圭殑紲革紒鏄懼瓨鐨勮闂繪槸鎱㈢殑銆備簩緇磋瀛橈紝鍙槸榪炵畫璁塊棶浜嗕袱嬈″晩銆傝鏄佽繖鏍峰仛錛屼笉浣嗘墽琛屾晥鐜囦綆錛岃屼笖鍐欎唬鐮佷篃鎱€傚鏋滃鍐呭瓨鐨勬蹇典笉鐔熸倝錛屽崈涓囧埆瓚熻繖瓚熸祽姘淬傜湅鎳傝繖孌典唬鐮侊紝灝卞綋鏄涔犱竴涓嬫垨鑰呯悊瑙d笅鍐呭瓨銆佹樉瀛樹笌鍐呭瓨鐙珛鐨勬蹇靛拰瑙勫垯鍚с?/p>
闄勪笂鎵ц緇撴灉錛?/p>
VisualStudio2010鎹瀹岀編鏀寔CUDA4.0錛屾垜鐮旂┒浜嗕竴涓嬶紝涓嬮潰灝嗘垜鐨勯厤緗繃紼嬪憟鐚粰澶у錛屽笇鏈涘澶у鏈夋墍甯姪銆?/p>
絎竴姝ワ細涓嬭澆CUDA4.0 Driver錛宼oolkit錛孲DK錛岃繖浜涗笉鍦ㄦ彁浜嗭紝鍙鍚勪綅鍘籒vidia鐨勫畼緗戜笅杞藉茍涓斾竴嬈″畨瑁呭氨鏄簡錛屼笉榪囧悇浣嶅湪瀹夎鍓嶅繀欏誨皢浠ュ墠鐨勭増鏈嵏杞芥帀銆傚綋鐒禫isualStudio2010鏄繀欏葷殑錛屽悇浣嶅繀欏昏瀹夎瀹冿紝瑕佷笉鎴戠殑鏂囩珷棰樼洰灝辨病鎰忎箟浜嗐備竴鍒囧畨瑁呭氨緇悗錛屼笅闈㈠紑濮嬮厤緗?/p>
絎簩姝ワ細鎵撳紑VS2010錛屾柊寤轟竴涓猈in32鎺у埗鍙板簲鐢ㄧ▼搴忥紙鑻辨枃鏄疻in32ConsoleApplication錛夈?/p>
鍥? 鏂板緩Win32鎺у埗鍙扮▼搴?/p>
紜畾鍚庯紝鍦ㄥ悜瀵間腑閫夋嫨絀洪」鐩細 鍥? 絀洪」鐩?/p>
絎笁姝ワ細娣誨姞CU鏂囦歡錛屽彸鍑婚」鐩?銆?#8220;娣誨姞”-銆?#8220;鏂板緩欏?#8221; 鍥? 娣誨姞CU鏂囦歡 絎洓姝ワ細涓?#8220;test.cu”娣誨姞鐢熸垚瑙勫垯 鍙沖嚮欏圭洰錛岄夋嫨“鑷畾涔夌敓鎴?#8221;錛屼細璺沖嚭鍥?妗嗭紝濡傚浘鎵紺烘搷浣溿?/p>
鍥?閫夋嫨鑷畾涔夌敓鎴愯鍒?/p>
鍙沖嚮浣犳坊鍔犵殑CU鏂囦歡錛岄夋嫨灞炴э紝鐒跺悗鎸夊浘紺烘搷浣溿?/p>
鍥? 淇敼CU鏂囦歡鐨勭敓鎴愯鍒欎負CUDA C/C++ 鍥? 搴旂敤鍚庣殑緇撴灉 絎簲姝ワ細娣誨姞闄勫姞渚濊禆欏筩uda.lib;cudart.lib銆傚彸鍑婚」鐩紝閫夋嫨灞炴э紝鐒跺悗鎸夊浘紺烘搷浣溿?/p>
鍥? 娣誨姞闄勫姞渚濊禆欏?/p>
絎叚姝ワ細嫻嬭瘯銆傚湪CU闂環涓坊鍔犲涓嬩唬鐮侊細錛堝緢鍋囧崟鐨勪唬鐮侊紝鍛靛懙錛?/p>
#include <cuda.h> #include <cuda_runtime_api.h> int main(int argc, char *argv[]) { float *device_f = NULL; cudaMalloc((void**)&device_f, 10*sizeof(float)); // cudaFree(device_f); return 0; } 鐢熸垚錛?/p>
鍥?鐢熸垚緇撴灉 閲嶈鎻愰啋錛氱▼搴忔渶濂戒笉瑕佹斁鍦ㄥ惈鏈夋眽瀛楃殑鐩綍涓嬶紝濡傛灉鎻愮ず鏈夎鍒欓敊璇紝鍏堝叧闂璙S錛岀劧鍚庢妸瑙e喅鏂規鐩綍涓嬬殑閭d釜鏁版嵁搴擄紝Debug鏂囦歡澶瑰垹闄ゃ傞」鐩洰褰曚笅鐨凞ebug涔熷垹闄ゃ傝繖涓昏鏄敱浜庝袱瀹跺叕鍙革紙Nvidia銆丮icrosoft錛夌殑闂銆?/p>
涓轟簡璁╀綘鐩鎬俊鎴戠殑閰嶇疆鏄垚鍔熺殑錛屾垜鎶婃垜鐨勪竴涓浘鍍忓鐞嗙粨鏋滆創鍑烘潵銆?/p>
Lenna鍘熷浘 Lenna閿愬寲緇撴灉 寰堥渶瑕佺殑棰濆鐨勪袱姝ワ細 涓銆佸皢SDK鐩綍涓嬶細…/NVIDIA GPU Computing SDK 4.0/C/doc/syntax_highlighting/visual_studio_8 銆傚皢姝ょ洰褰曚笅鐨剈sertype.dat鎷瘋礉鍒?#8230;/Microsoft Visual Studio 10.0/Common7/IDE鐩綍涓嬨?/p>
浜屻佸湪鑿滃崟鏍忎腑閫夋嫨“宸ュ叿”->“閫夐」”銆傜劧鍚庢寜鐓у浘紺烘搷浣滃氨琛屼簡銆傛搷浣滃畬鍚庯紝璁板緱閲嶅惎VS2010銆?/p>
鍜屾墍鏈?Linux 鍙戣鐗堜竴鏍鳳紝Ubuntu 榛樿浣跨敤 nouveau 寮婧愰┍鍔ㄣ傝瘽璇磋繖涓┍鍔ㄨ繕涓嶉敊鐨勶紝鐢氳嚦鑳藉鏀寔涓浜涗笁緇存父鎴忋備笉榪囷紝鏃㈢劧鏈夋洿濂界殑 nvidia 瀹樻柟椹卞姩錛屽純涔嬩笉鐢ㄤ篃璇翠笉榪囧幓銆傝櫧鐒跺畼鏂歸┍鍔ㄦ槸闂簮鐨勶紝浣嗘棦鐒朵拱浜?nvidia 鐨勬樉鍗★紝褰撶劧灝辨湁浣跨敤榪欎釜杞歡鐨勬潈鍒┿?br />綆瑕佺殑璇達紝浠?Ubuntu 11.10 寮濮嬶紝鐩村埌 Ubuntu 12.04錛岃繍鐢ㄥ畼鏂歸┍鍔ㄦ槸寰堢畝鍗曠殑浜嬶紝鏃犺浠?#8220;杞歡涓績”鐢ㄩ紶鏍囩偣鍑誨畨瑁咃紝榪樻槸鐢ㄤ竴鏉″懡浠?sudo apt-get install nvidia-current 鏉ュ畨瑁咃紝閮芥槸綆鍗曟儸鎰忕殑浜嬨?br />
鐒惰岋紝鍦?Ubuntu 12.10 涓嬶紝鍑洪棶棰樹簡……瀹夎瀹屾瘯涔嬪悗錛岄噸鍚紝鐧誨綍錛屽緱鍒頒簡涓涓病鏈変換浣曡彍鍗曘佸伐鍏鋒潯鐨勭函妗岄潰銆傚ソ鍦ㄥ彲浠ョ敤 Ctrl-Alt T 鏉ュ惎鍔ㄤ竴涓粓绔?#8212;—鎴戠煡閬?Ctrl-Alt F1 涔嬬被鐨勫揩鎹烽敭錛屼絾鏄紝鐢變簬涓枃 locale 璁劇疆錛屽湪 tty 緇堢閭i噷錛屼綘浼氬緱鍒板ぇ閲忕殑鑿卞艦錛屽畠浠師鏈簲璇ユ槸姹夊瓧——鏃㈢劧鏈夋寚鎸ョ數鑴戠殑鍦版柟錛岄偅涔堣繕鏈夋晳錛屽懙鍛點傚綋騫村湪 Fedora 涓嬩竴鐩存槸鎵嬪伐瀹夎 n 鍗¢┍鍔ㄧ殑錛岄偅涓畨瑁呰繃紼?#8230;…寰堟槑鏄懼氨鏄竴涓紪璇戠殑榪囩▼錛佽胺姝屼簡涓涓嬶紝鏋滅劧錛岄渶瑕?kernel 鐨勬簮浠g爜鍜屽ご鏂囦歡錛?br />
濡傛灉浣犲凡緇忚蛋鍒頒簡榪欎竴姝ワ紝濡備笅鎿嶄綔錛堜互 curent 鐗堜負渚嬶紝濡傛灉浣犲畨瑁呯殑鍏跺畠鐗堟湰錛屾瘮濡?current-updates 涔嬬被錛岃鑷鏇存敼鍛戒護錛夈傦純 寮澶寸殑琛屾槸娉ㄩ噴錛岃娉ㄦ剰 Ubuntu 涓嶅厑璁?root 鐧誨綍錛屼笉浼氭湁 root 鎻愮ず絎︾殑錛堝垰鍐欏畬灝辨兂璧鋒潵錛屽洖鏉ヤ慨姝d竴涓嬶紝鎯沖緱鍒?root 鎻愮ず絎︿篃寰堢畝鍗曠殑錛歴udo bash錛夈?br />
# 棣栧厛鍗歌澆椹卞姩
$ sudo apt-get remove --purge nvidia-current
# 瀹夎 kernel 婧愪唬鐮併佸ご鏂囦歡
$ sudo apt-get install linux-source linux-headers-generic
# 閲嶆柊瀹夎椹卞姩
$ sudo apt-get install nvidia-current
# 閫氬父浣犱細鐢ㄥ埌鐨勶紝寤鴻鎶婅繖涓篃瑁呬笂
$ sudo apt-get install nvidia-settings
#閲嶅惎
$ sudo reboot
]]>
1錛氫笅杞紺UDA 4.0
2錛氬畨瑁匔UDA Toolkit for Ubuntu Linux 10.10
chmod +x cudatoolkit_4.0.17_linux_32_ubuntu10.10.run
sudo ./cudatoolkit_4.0.17_linux_32_ubuntu10.10.rungedit ~/.bashrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH sudo echo "/usr/local/cuda/lib" >> /etc/ld.so.conf.d/cuda-40.conf
sudo ldconfigecho 'export PATH=$PATH:/usr/local/cuda/bin' >> ~/.bashrc
3錛氬畨瑁匔UDA Tools SDK錛?/h6>
chmod +x cudatools_4.0.17_linux_32.run
sudo ./cudatools_4.0.17_linux_32.run4錛氬畨瑁匞PU Computing SDK錛?/h6>
chmod +x gpucomputingsdk_4.0.17_linux.run
./gpucomputingsdk_4.0.17_linux.run5錛氳瀹欸CC緙栬瘧鍣?
sudo apt-get install gcc-4.4 g++-4.4
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 150
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 150
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100 sudo update-alternatives --config gcc
sudo update-alternatives --config g++
mkdir ~/bin
ln -s /usr/bin/gcc-4.4 ~/bin/gcc
ln -s /usr/bin/g++-4.4 ~/bin/g++ export PATH=~/bin:$PATH
6錛氱紪璇慓PU Computing SDK code samples
cd ~/NVIDIA_GPU_Computing_SDK
make/usr/bin/ld: cannot find -lXi
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lglut
collect2: ld returned 1 exit status apt-get install libxi-dev libxmu-dev libglut3-dev
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status sudo -i
cd /usr/lib/
ls -al |grep libGL.so.*rm libGL.so
ln -s libGL.so.280.13 libGL.so
]]>
鎴戝畨瑁呮繪槸鍑虹幇涓嬪垪閿欒錛?br />ERROR: The Nouveau kernel driver is currently in use by your system. This
driver is incompatible with the NVIDIA driver, and must be disabled
before proceeding. Please consult the NVIDIA driver README and your
Linux distribution's documentation for details on how to correctly
disable the Nouveau kernel driver.
2.鍒犻櫎涔嬪墠鎵瀹夎鐨刵Vidia椹卞姩(娌″畨鐨勭暐鍘昏繖涓姝?sudo apt-get --purge remove nvidia-*
sudo gedit /etc/modprobe.d/disable-nouveau.conf
blacklist nouveau
options nouveau modeset=0
4.鎸塁trl + Alt +F1鍒扮涓鎺у埗鍙幫紝杈撳叆鐢ㄦ埛鍚嶏紝瀵嗙爜鐧婚檰鍚庢墽琛岋細sudo /etc/init.d/gdm stop
5.榪涘叆椹卞姩鎵鍦ㄦ枃浠跺す錛屽畨瑁呴┍鍔?/p>
sudo sh NVIDIA-Linux-x86-280.13.run
sudo nvidia-xconfig
sudo /etc/init.d/gdm restart
]]>
鍥?
鍥?
鍥?
鍥?
鍥?
鍥?
鍥?
鍥?
鍥?
鍥?0
鍥?1
鍥?2
鍥?3
http://blog.csdn.net/bendanban/article/details/8037538
]]>
01.unsigned char tx = threadIdx.x;
02.unsigned char bx = blockIdx.x;
03.unsigned int id = tx + bx*blockDim.x; 
瑙e喅鏂規硶鏄細
unsigned short bx = blockIdx.x;
http://blog.csdn.net/bendanban/article/details/7971447
]]>
http://blog.csdn.net/bendanban/article/details/7606116
]]>
[]$uname -m
$sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev binutils-gold
[]$gksu gedit /etc/modprobe.d/blacklist.conf
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
sudo apt-get remove --purge nvidia*
sudo service lightdm stop
chmod a+x devdriver*.run
sudo ./devdriver*.run
chmod a+x cudatoolkit*.run
sudo ./cudatoolkit*.run
export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
export LD_LIVRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH
export LD_LIVRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
chmod a+x cudasdk.run
./cudasdk.run
]]>
int r, c;
int **arr = (int**)malloc(ROWS*sizeof(int*));
int *data = (int*)malloc(COLS*ROWS*sizeof(int));
for (r = 0; r < ROWS; r++)
{
arr[r] = data + r*COLS;
}
free(arr);
free(data);
浠g爜涓殑arr瀹炰釜浜岀淮鏁扮粍鍙橀噺浜嗭紝浣犲彲浠ュ湪for寰幆涔嬪悗arr[i][j]鐨勬柟寮忎嬌鐢ㄥ畠銆?
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
#define ROWS 32
#define COLS 16
#define CHECK(res) if(res!=cudaSuccess){exit(-1);}
__global__ void Kerneltest(int **da, unsigned int rows, unsigned int cols)
{
unsigned int row = blockDim.y*blockIdx.y + threadIdx.y;
unsigned int col = blockDim.x*blockIdx.x + threadIdx.x;
if (row < rows && col < cols)
{
da[row][col] = row*cols + col;
}
}
int main(int argc, char **argv)
{
int **da = NULL;
int **ha = NULL;
int *dc = NULL;
int *hc = NULL;
cudaError_t res;
int r, c;
bool is_right=true;
res = cudaMalloc((void**)(&da), ROWS*sizeof(int*));CHECK(res)
res = cudaMalloc((void**)(&dc), ROWS*COLS*sizeof(int));CHECK(res)
ha = (int**)malloc(ROWS*sizeof(int*));
hc = (int*)malloc(ROWS*COLS*sizeof(int));
for (r = 0; r < ROWS; r++)
{
ha[r] = dc + r*COLS;
}
res = cudaMemcpy((void*)(da), (void*)(ha), ROWS*sizeof(int*), cudaMemcpyHostToDevice);CHECK(res)
dim3 dimBlock(16,16);
dim3 dimGrid((COLS+dimBlock.x-1)/(dimBlock.x), (ROWS+dimBlock.y-1)/(dimBlock.y));
Kerneltest<<<dimGrid, dimBlock>>>(da, ROWS, COLS);
res = cudaMemcpy((void*)(hc), (void*)(dc), ROWS*COLS*sizeof(int), cudaMemcpyDeviceToHost);CHECK(res)
for (r = 0; r < ROWS; r++)
{
for (c = 0; c < COLS; c++)
{
printf("%4d ", hc[r*COLS+c]);
if (hc[r*COLS+c] != (r*COLS+c))
{
is_right = false;
}
}
printf("\n");
}
printf("the result is %s!\n", is_right? "right":"false");
cudaFree((void*)da);
cudaFree((void*)dc);
free(ha);
free(hc);
getchar();
return 0;
}
]]>
]]>