锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 涓銆?nbsp; CPU+GPU鍗忓悓璁$畻妯″紡 CPU+GPU寮傛瀯鍗忓悓璁$畻闆嗙兢濡傚浘1鎵紺猴紝CPU+GPU寮傛瀯闆嗙兢鍙互鍒掑垎鎴愪笁涓茍琛屽眰嬈★細鑺傜偣闂村茍琛屻佽妭鐐瑰唴CPU涓嶨PU寮傛瀯騫惰銆佽澶囷紙CPU鎴朑PU錛夊唴騫惰銆傛牴鎹繖涓変釜灞傛鎴戜滑鍙互寰楀埌CPU+GPU寮傛瀯鍗忓悓璁$畻妯″紡涓猴細鑺傜偣闂村垎甯冨紡+鑺傜偣鍐呭紓鏋勫紡+璁懼鍐呭叡浜紡銆?/p> 1 鑺傜偣闂村垎甯冨紡 CPU+GPU寮傛瀯鍗忓悓璁$畻闆嗙兢涓紝鍚勪釜鑺傜偣涔嬮棿鐨勮繛鎺ヤ笌浼犵粺CPU闆嗙兢涓鏍鳳紝閲囩敤緗戠粶榪炴帴錛屽洜姝わ紝鑺傜偣闂撮噰鐢ㄤ簡鍒嗗竷寮忕殑璁$畻鏂瑰紡錛屽彲浠ラ噰鐢∕PI娑堟伅閫氫俊鐨勫茍琛岀紪紼嬭璦銆?/p> 2 鑺傜偣鍐呭紓鏋勫紡 CPU+GPU寮傛瀯鍗忓悓璁$畻闆嗙兢涓紝姣忎釜鑺傜偣涓婂寘鍚鏍窩PU鍜屼竴鍧楁垨澶氬潡GPU鍗★紝鑺傜偣鍐呴噰鐢ㄤ簡寮傛瀯鐨勬灦鏋勶紝閲囩敤涓諱粠寮忕殑緙栫▼妯″瀷錛屽嵆姣忎釜GPU鍗¢渶瑕佺敱CPU榪涚▼/綰跨▼璋冪敤銆?/p> 鐢變簬姣忎釜鑺傜偣涓婏紝CPU鏍告暟涔熸瘮杈冨錛岃綆楄兘鍔涗篃寰堝ぇ錛屽洜姝わ紝鍦ㄥ鏁版儏鍐典笅錛孋PU涔熶細鍙備笌閮ㄥ垎騫惰璁$畻錛屾牴鎹瓹PU鏄惁鍙備笌騫惰璁$畻錛屾垜浠彲浠ユ妸CPU+GPU寮傛瀯鍗忓悓璁$畻鍒掑垎鎴愪袱縐嶈綆楁ā寮忥細 1) CPU/GPU鍗忓悓璁$畻錛欳PU鍙礋璐e鏉傞昏緫鍜屼簨鍔″鐞嗙瓑涓茶璁$畻錛孏PU 榪涜澶ц妯″茍琛岃綆楋紱 2) CPU+GPU鍏卞悓璁$畻錛氱敱涓涓狢PU榪涚▼/綰跨▼璐熻矗澶嶆潅閫昏緫鍜屼簨鍔″鐞嗙瓑涓茶璁$畻錛屽叾瀹僀PU榪涚▼/綰跨▼璐熻矗灝忛儴鍒嗗茍琛岃綆楋紝GPU璐熻矗澶ч儴鍒嗗茍琛岃綆椼?/p> 鐢變簬CPU/GPU鍗忓悓璁$畻妯″紡姣擟PU+GPU鍏卞悓璁$畻妯″紡綆鍗曪紝涓嬮潰鐨勪粙緇嶄腑錛屾垜浠互CPU+GPU鍏卞悓璁$畻妯″紡涓轟緥榪涜灞曞紑浠嬬粛鍚勭緙栫▼妯″紡銆?/p> 鍦–PU+GPU鍏卞悓璁$畻妯″紡涓嬶紝鎴戜滑鎶婃墍鏈夌殑CPU緇熺О涓轟竴涓澶囷紙device錛夛紝濡傚弻璺?鏍窩PU鍏辨湁16涓牳錛屾垜浠妸榪?6涓牳緇熺О鎴愪竴涓澶囷紱姣忎釜GPU鍗℃垚涓轟竴涓澶囥傛牴鎹繖縐嶅垝鍒嗘柟寮忥紝鎴戜滑鍙互閲囩敤MPI榪涚▼鎴朞penMP綰跨▼鎺у埗鑺傜偣鍐呯殑鍚勮澶囦箣闂寸殑閫氫俊鍜屾暟鎹垝鍒嗐?/p> 3 璁懼鍐呭叡浜紡 1) CPU璁懼錛氭瘡涓妭鐐瑰唴鐨勬墍鏈夊鏍窩PU閲囩敤浜嗗叡浜瓨鍌ㄦā鍨嬶紝鍥犳錛屾妸鑺傜偣鍐呯殑鎵鏈夊鏍窩PU鐪嬩綔涓涓澶囷紝 鍙互閲囩敤MPI榪涚▼鎴朞penMP綰跨▼銆乸Thread綰跨▼鎺у埗榪欎簺CPU鏍哥殑騫惰璁$畻銆?/p> 2) GPU璁懼錛欸PU璁懼鍐呮湁鑷繁鐙珛鐨凞RAM瀛樺偍錛孏PU璁懼涔熸槸鍏變韓瀛樺偍妯″瀷錛屽湪GPU涓婇噰鐢–UDA鎴朞penCL緙栫▼鎺у埗GPU浼楁牳鐨勫茍琛岃綆椼侰UDA緙栫▼妯″紡鍙湪NVIDIA GPU涓婃敮鎸侊紝OpenCL緙栫▼妯″紡鍦∟VIDIA GPU鍜孉MD GPU閮芥敮鎸併?/p> 鏍規嵁鍓嶉潰瀵笴PU+GPU寮傛瀯鍗忓悓璁$畻妯″紡鐨勬弿榪幫紝鎴戜滑鍙互寰楀埌CPU+GPU寮傛瀯鍗忓悓璁$畻鐨勭紪紼嬫ā鍨嬶紙浠PI鍜孫penMP涓轟緥錛夊琛?鎵紺恒?/p> 鍥? CPU+GPU寮傛瀯鍗忓悓璁$畻鏋舵瀯 琛? CPU+GPU寮傛瀯鍗忓悓璁$畻緙栫▼妯″瀷 鑺傜偣闂村垎甯冨紡 鑺傜偣鍐呭紓鏋勫紡 璁懼鍐呭叡浜紡 CPU GPU 妯″紡1 MPI OpenMP OpenMP CUDA/OpenCL 妯″紡2 MPI MPI OpenMP CUDA/OpenCL 妯″紡3 MPI MPI MPI CUDA/OpenCL 浜屻?nbsp; CPU+GPU鍗忓悓璁$畻璐熻澆鍧囪 鎬ц璁?/p> 涓嬮潰浠ユā寮?涓轟緥綆鍗曚粙緇嶅鑺傜偣CPU+GPU鍗忓悓璁$畻浠誨姟鍒掑垎鍜岃礋杞藉潎琛★紝妯″紡2鐨勮繘紼嬪拰綰跨▼涓嶤PU鏍稿拰GPU璁懼瀵瑰簲鍏崇郴濡傚浘2鎵紺恒傝嫢閲囩敤涓諱粠寮廙PI閫氫俊鏈哄埗錛屾垜浠湪鑺傜偣0涓婂璧蜂竴涓繘紼嬶紙0鍙瘋繘紼嬶級浣滀負涓昏繘紼嬶紝鎺у埗鍏跺畠鎵鏈夎繘紼嬨傛瘡涓妭鐐逛笂鍚姩3涓綆楄繘紼嬶紝鍏朵腑涓や釜鎺у埗GPU璁懼錛屼竴涓帶鍒跺叾浣欐墍鏈塁PU鏍哥殑騫惰錛屽湪GPU鍐呴噰鐢–UDA/OpenCL騫惰錛屽湪CPU璁懼鍐呴噰鐢∣penMP澶氱嚎紼嬪茍琛屻?/p> 鐢變簬CPU+GPU鍗忓悓璁$畻妯″紡鍒嗕負3涓眰嬈★紝閭d箞璐熻澆鍧囪 鎬т篃闇瑕佸湪榪?涓眰嬈′笂鍒嗗埆璁捐銆傚湪妯″紡2鐨勭紪紼嬫柟寮忎笅錛岃妭鐐瑰唴鍜岃妭鐐歸棿鍧囬噰鐢∕PI榪涚▼錛屽悎浜屼負涓錛岃璁¤礋杞藉潎琛℃椂錛屽彧闇瑕佸仛鍒拌繘紼嬮棿錛堣澶囦箣闂達級鐨勮礋杞藉潎琛″拰CPU璁懼鍐匫penMP綰跨▼璐熻澆鍧囪 銆丟PU璁懼鍐匔UDA綰跨▼璐熻澆鍧囪 鍗沖彲銆?/p> 瀵逛簬璁懼鍐咃紝閲囩敤鐨勬槸鍏變韓瀛樺偍鍣ㄦā鍨嬶紝CPU璁懼涓婄殑OpenMP綰跨▼鍙互閲囩敤schedule(static/ dynamic/ guided )鏂瑰紡錛汫PU璁懼涓婂彧瑕佷繚璇佸悓涓warp鍐呯殑綰跨▼璐熻澆鍧囪 鍗沖彲銆?/p> 瀵逛簬CPU+GPU鍗忓悓璁$畻錛岀敱浜嶤PU鍜孏PU璁$畻鑳藉姏鐩稿樊寰堝ぇ錛屽洜姝わ紝鍦ㄥ浠誨姟鍜屾暟鎹垝鍒嗘椂涓嶈兘緇機PU璁懼鍜孏PU璁懼鍒掑垎鐩稿悓鐨勪換鍔?鏁版嵁閲忥紝榪欏氨澧炲姞浜咰PU涓嶨PU璁懼闂磋礋杞藉潎琛$殑闅懼害銆侰PU涓嶨PU涔嬮棿鐨勮礋杞藉潎琛℃渶濂界殑鏂瑰紡鏄噰鐢ㄥ姩鎬佽礋杞藉潎琛$殑鏂規硶錛岀劧鑰屾湁浜涘簲鐢ㄦ棤娉曠敤鍔ㄦ佸垝鍒嗚屽彧鑳介噰鐢ㄩ潤鎬佸垝鍒嗙殑鏂瑰紡銆備笅闈㈡垜浠垎鍒粙緇嶅姩鎬佸垝鍒嗗拰闈欐佸垝鍒嗐?/p> 1) 鍔ㄦ佸垝鍒嗭細瀵逛簬涓浜涢珮鎬ц兘璁$畻搴旂敤紼嬪簭錛屽湪CPU涓嶨PU涔嬮棿鐨勮礋杞藉潎琛″彲浠ラ噰鐢ㄥ姩鎬佽礋杞藉潎琛$殑浼樺寲鏂規硶錛屼緥濡傛湁N涓換鍔?鏁版嵁錛屼竴涓妭鐐瑰唴鏈?涓狦PU鍗★紝鍗充笁涓澶囷紙CPU鍜?涓狦PU錛夛紝鍔ㄦ佽礋杞藉潎琛$殑鏂規硶鏄瘡涓澶囧厛鑾峰彇涓涓換鍔?鏁版嵁榪涜璁$畻錛岃綆椾箣鍚庣珛鍗寵幏鍙栦笅涓涓換鍔★紝涓嶉渶瑕佺瓑寰呭叾浠栬澶囷紝鐩村埌N涓換鍔?鏁版嵁璁$畻瀹屾垚銆傝繖縐嶆柟寮忓彧闇瑕佸湪闆嗙兢涓婅瀹氫竴涓富榪涚▼錛岃礋璐g粰鍚勪釜璁$畻榪涚▼鍒嗛厤浠誨姟/鏁版嵁銆?/p> 2) 闈欐佸垝鍒嗭細鍦ㄤ竴浜涘簲鐢ㄤ腑錛屾棤娉曢噰鐢ㄥ姩鎬佸垝鍒嗙殑鏂瑰紡錛岄渶瑕侀潤鎬佸垝鍒嗘柟娉曪紝鐒惰岄潤鎬佸垝鍒嗘柟娉曚嬌寮傛瀯璁懼闂寸殑璐熻澆鍧囪 鍙樺緱鍥伴毦錛屾湁鏃剁敋鑷蟲棤娉曞疄鐜般傚浜庝竴浜涜凱浠e簲鐢ㄧ▼搴忥紝鎴戜滑鍙互閲囩敤瀛︿範鍨嬬殑鏁版嵁鍒掑垎鏂規硶錛屽鍏堣CPU鍜孏PU鍒嗗埆鍋氫竴嬈$浉鍚岃綆楅噺鐨勮綆楋紝鐒跺悗閫氳繃鍚勮嚜鐨勮繍琛屾椂闂磋綆楀嚭CPU涓嶨PU鐨勮綆楄兘鍔涙瘮渚嬶紝鐒跺悗鍐嶅鏁版嵁榪涜鍒掑垎銆?/p> 鍥? CPU+GPU鍗忓悓璁$畻紺烘剰鍥撅紙浠ユ瘡涓妭鐐?涓狦PU涓轟緥錛?/p> 涓夈?nbsp; CPU+GPU鍗忓悓璁$畻鏁版嵁鍒掑垎紺轟緥 鍋囪鏌愪竴搴旂敤鐨勬暟鎹壒鐐瑰鍥?鎵紺猴紝浠庤緭鍑虹湅錛岀粨鏋滀腑鐨勬瘡涓肩殑璁$畻闇瑕佹墍鏈夎緭鍏ユ暟鎹殑淇℃伅錛屾墍鏈夎緭鍑哄肩殑璁$畻涔嬮棿娌℃湁浠諱綍鏁版嵁渚濊禆鎬э紝鍙互琛ㄧず鎴恛utj=錛涗粠杈撳叆鐪嬶紝姣忎釜杈撳叆鍊煎鎵鏈夌殑杈撳嚭鍊奸兘浜х敓褰卞搷錛屾墍鏈夎緭鍏ユ暟鎹箣闂翠篃娌℃湁浠諱綍鏁版嵁渚濊禆鎬с備粠鏁版嵁鐗圭偣鍙互鐪嬪嚭錛岃搴旂敤鏃㈠彲浠ュ杈撳叆榪涜騫惰鏁版嵁鍒掑垎涔熷彲浠ュ杈撳嚭榪涜鏁版嵁鍒掑垎銆備笅闈㈡垜浠垎鏋怌PU+GPU鍗忓悓璁$畻鏃剁殑鏁版嵁鍒掑垎鏂瑰紡銆?/p> 鍥? 騫惰鏁版嵁紺轟緥 1 鎸夎緭鍏ユ暟鎹垝鍒?/p> 鍋囪鎸夎緭鍏ユ暟鎹垝鍒嗭紝鎴戜滑鍙互閲囩敤鍔ㄦ佺殑鏂瑰紡緇欐瘡涓狢PU鎴朑PU璁懼鍒嗛厤鏁版嵁錛屽仛鍒板姩鎬佽礋杞藉潎琛★紝鐒惰岃繖縐嶅垝鍒嗘柟寮忥紝浣挎墍鏈夌殑綰跨▼鍚戝悓涓涓緭鍑轟綅緗繚瀛樼粨鏋滐紝涓轟簡姝g‘鎬э紝闇瑕佷嬌鎵鏈夌殑綰跨▼瀵規瘡涓粨鏋滆繘琛屽師瀛愭搷浣滐紝榪欐牱灝嗕細涓ラ噸褰卞搷鎬ц兘錛屾瀬绔儏鍐典笅錛屾墍鏈夌嚎紼嬭繕鏄寜欏哄簭鎵ц鐨勩傚洜姝わ紝榪欑鏂瑰紡鏁堟灉寰堝樊銆?/p> 2 鎸夎緭鍑烘暟鎹垝鍒?/p> 鎸夎緭鍑烘暟鎹垝鍒嗙殑璇濆彲浠ヨ姣忎釜綰跨▼鍋氫笉鍚屼綅緗殑緇撴灉璁$畻錛岃綆楀畬鍏ㄧ嫭绔嬶紝娌℃湁渚濊禆鎬с傚鏋滈噰鐢ㄩ潤鎬佸垝鍒嗙殑鏂瑰紡錛岀敱浜嶤PU鍜孏PU璁$畻鑳藉姏涓嶅悓錛屽洜姝わ紝寰堥毦鍋氬埌璐熻澆鍧囪 銆傞噰鐢ㄥ姩鎬佺殑鏂瑰紡鍙互鍋氬埌璐熻澆鍧囪 錛屽嵆鎶婄粨鏋滄瘡嬈$粰CPU鎴朑PU璁懼涓鍧楋紝褰撹澶囪綆楀畬鏈涔嬪悗錛岀珛鍗沖悜涓昏繘紼嬬敵璇蜂笅涓涓垎鍧楋紝榪欐牱鍙互鍋氬埌瀹屽叏璐熻澆鍧囪 銆傛寜杈撳嚭鏁版嵁鍒掑垎錛屾棤璁洪噰鐢ㄩ潤鎬佸垝鍒嗚繕鏄姩鎬佸垝鍒嗭紝閮戒細甯︽潵鍙﹀涓涓棶棰橈紝鐢變簬姣忎釜緇撴灉鐨勮綆楅兘闇瑕佹墍鏈夎緭鍏ヤ俊鎭紝閭d箞鎵鏈夎繘紼嬶紙璁懼錛夐兘闇瑕佽鍙栦竴閬嶆墍鏈夎緭鍏ユ暟鎹紝鍔ㄦ佸垝鍒嗘椂榪樹笉鍙竴嬈★紝灝ゅ叾瀵逛簬杈撳叆鏁版嵁寰堝ぇ鏃訛紝榪欏皢浼氬杈撳叆鏁版嵁鐨処O浜х敓寰堝ぇ鐨勫獎鍝嶏紝寰堟湁鍙兘浣縄O紼嬪簭鎬ц兘鐡墮銆?/p> 3 鎸夎緭鍏ュ拰杈撳嚭鍚屾椂鍒掑垎 鐢變簬鎸夎緭鍏ユ垨鎸夎緭鍑哄垝鍒嗛兘瀛樺湪涓嶅悓鐨勭己鐐癸紝鎴戜滑鍙互閲囩敤杈撳叆鍜岃緭鍑哄悓鏃跺垝鍒嗙殑鏂瑰紡榪涜鏁版嵁鍒掑垎錛屽鍥?鎵紺恒?/p> 浠庤緭鍑鴻搴︼紝璁╂墍鏈夌殑璁$畻榪涚▼錛堣澶囷級閮芥湁涓浠借綆楃粨鏋滐紝璁懼鍐呯殑綰跨▼瀵圭粨鏋滆繘琛屽茍琛岃綆楋紝姣忎釜璁懼閮芥湁涓浠藉眬閮ㄧ殑璁$畻緇撴灉錛屾墍鏈夎澶囬兘璁$畻瀹屾瘯涔嬪悗錛屽埄鐢∕PI榪涚▼瀵規墍鏈夎澶囩殑璁$畻緇撴灉榪涜瑙勭害錛岃綰︽渶鍚庣殑緇撴灉鍗蟲槸鏈緇堢殑緇撴灉銆?/p> 浠庤緭鍏ヨ搴︼紝鎸夎緭鍏ユ暟鎹姩鎬佸垝鍒嗙粰涓嶅悓鐨勮綆楄繘紼嬶紙璁懼錛夛紝榪欐牱鍙互婊¤凍鎵鏈夌殑璁$畻榪涚▼璐熻澆鍧囪 銆?/p> 鍥? CPU+GPU鍗忓悓璁$畻鏁版嵁鍒掑垎紺轟緥



]]>
]]>
]]>
]]>
]]>
]]>
]]>
OpenCL搴旂敤紼嬪簭鍚湁涓ら儴鍒嗐侽penCL涓葷▼搴忔槸綰蔣浠朵緥紼嬶紝浠ユ爣鍑咰/C++緙栧啓錛屽彲浠ヨ繍琛屽湪浠諱綍綾誨瀷鐨勫井澶勭悊鍣ㄤ笂銆備緥濡傦紝榪欑被澶勭悊鍣ㄥ彲浠ユ槸FPGA涓殑宓屽叆寮忚蔣鏍稿鐞嗗櫒銆佺‖鏍窤RM澶勭悊鍣ㄦ垨鑰呭緗畑86澶勭悊鍣紝濡傚浘4鎵紺恒?/p>

鍦ㄨ繖涓涓昏蔣浠朵緥紼嬫墽琛屾湡闂寸殑鏌愪竴鐐癸紝鏌愪竴鍔熻兘鏈夊彲鑳介渶瑕佸緢澶х殑璁$畻閲忥紝榪欏氨鍙互鍙楃泭浜庡茍琛屽櫒浠剁殑楂樺害騫惰鍔犻熷姛鑳斤紝渚嬪CPU銆丟PU銆丗PGA絳夊櫒浠躲傝鍔犻熺殑鍔熻兘琚О涓篛penCL鍐呮牳銆傞噰鐢ㄦ爣鍑咰緙栧啓榪欎簺鍐呮牳錛涗絾鏄紝閲囩敤緇撴瀯瀵瑰叾榪涜娉ㄩ噴錛屼互璁懼畾騫惰澶勭悊鎿嶄綔鍜屽瓨鍌ㄥ櫒絳夌駭銆傚浘5涓殑渚嬪瓙瀵逛袱涓暟緇刟鍜宐榪涜鐭㈤噺鍔犳硶錛屽皢緇撴灉鍐欏洖杈撳嚭鏁扮粍搴旂瓟涓傜煝閲忕殑姣忎竴鍏冪礌閮介噰鐢ㄤ簡騫惰綰跨▼錛屽綋閲囩敤鍍廎PGA榪欑被鍏鋒湁澶ч噺綺劇粏綺掑害騫惰鍗曞厓鐨勫櫒浠惰繘琛屽姞閫熸椂錛岃兘澶熷緢蹇殑璁$畻鍑虹粨鏋溿備富紼嬪簭浣跨敤鏍囧噯OpenCL搴旂敤紼嬪簭鎺ュ彛(API)錛屾敮鎸佸皢鏁版嵁浼犻佽嚦FPGA錛岃皟鐢‵PGA鍐呮牳錛屼紶鍥炲緱鍒扮殑鏁版嵁銆?/span>

1Khronos闆嗗洟緗戠珯瀵筄penCL鏍囧噯榪涜浜嗚緇嗙殑浠嬬粛銆?/span>
涓嶤PU鍜孏PU涓嶅悓錛屽叾騫惰綰跨▼鍙互鍦ㄤ笉鍚岀殑鍐呮牳涓墽琛岋紝鑰孎PGA鑳藉鎻愪緵涓嶅悓鐨勭瓥鐣ャ傚彲浠ユ妸鍐呮牳鍔熻兘浼犻佸埌涓撶敤娣卞害嫻佹按綰跨‖浠剁數璺腑錛屽畠浣跨敤浜嗘祦姘寸嚎騫惰澶勭悊姒傚康錛屽湪鏈川涓婂氨鏄綰跨▼鐨勩傝繖浜涙祦姘寸嚎鐨勬瘡涓鏉¢兘鍙互澶嶅埗澶氭錛屼笌涓鏉℃祦姘寸嚎鐩告瘮錛屾彁渚涙洿寮虹殑騫惰澶勭悊鍔熻兘銆傚鍥?鎵紺猴紝鍙互閫氳繃綰ц仈鍔熻兘鍗曞厓瀹炵幇鐭㈤噺鍔犳硶鍐呮牳錛屽湪OpenCL鎻忚堪涓疄鐜版瘡涓鎿嶄綔錛岃繘琛屽鍒朵互婊¤凍瀹為檯搴旂敤鐨勫悶鍚愰噺鍜屽歡鏃惰姹傘?/p>
铏界劧鎵鏄劇ず鐨勫彧鏄竴涓畝鍗曡〃寰侊紝浣嗘瘡涓姛鑳藉崟鍏冮兘鍙互鏄繁搴︽祦姘寸嚎錛屼互淇濊瘉鏈緇堢數璺殑宸ヤ綔棰戠巼瓚沖楂樸傛澶栵紝緙栬瘧鍣ㄥ彲浠ュ緩绔嬬數璺潵綆$悊涓庡閮ㄧ郴緇熺殑閫氫俊銆傚湪榪欎釜渚嬪瓙涓紝DDRx鎺у埗鍣ㄥ拰PHY榪炴帴鑷沖唴鏍革紝浣垮叾鑳藉楂樻晥璁塊棶鐗囧闃靛垪銆傜被浼肩殑錛孭CI Express?(PCIe?)IP鑷姩渚嬪寲錛岃繛鎺ヨ嚦鍐呮牳錛岃繖鏍鳳紝x86涓繪満鑳藉閫氳繃OpenCLAPI涓嶧PGA鍔犻熷櫒榪涜閫氫俊銆?/p>
鍦‵PGA涓婂疄鐜癘penCL鏍囧噯鐨勪紭鍔?/p>
浣跨敤OpenCL鎻忚堪鏉ュ紑鍙慒PGA璁捐錛屼笌鍩轟簬HDL璁捐鐨勪紶緇熸柟娉曠浉姣旓紝鍏鋒湁寰堝浼樺娍銆傛渶鏄捐憲鐨勪紭鍔垮鍥?鎵紺恒傚紑鍙戣蔣浠跺彲緙栫▼鍣ㄤ歡鐨勬祦紼嬩竴鑸寘鎷繘琛屾瀯鎬濄佸湪C絳夐珮綰ц璦涓綆楁硶緙栫▼錛岀劧鍚庝嬌鐢ㄨ嚜鍔ㄧ紪璇戝櫒鏉ュ緩绔嬫寚浠ゆ祦銆?/p>

榪欎竴鏂規硶鍙互涓庝紶緇熷熀浜嶧PGA鐨勮璁℃柟娉曠浉姣斻傝繖閲岋紝璁捐浜哄憳鐨勪富瑕佸伐浣滄槸瀵圭‖浠舵寜鐓ф瘡涓懆鏈熻繘琛屾弿榪幫紝鐢ㄤ簬瀹炵幇鍏剁畻娉曘備紶緇熸祦紼嬫秹鍙婂埌寤虹珛鏁版嵁閫氳礬錛屽鍥?鎵紺猴紝閫氳繃鐘舵佹満鏉ユ帶鍒惰繖浜涙暟鎹氳礬錛屼嬌鐢ㄧ郴緇熺駭宸ュ叿(渚嬪錛孲OPCBuilder銆丳latformStudio)榪炴帴鑷沖簳灞侷P鍐呮牳錛岀敱浜庡繀欏昏婊¤凍澶栭儴鎺ュ彛甯︽潵鐨勭害鏉燂紝鍥犳錛岄渶瑕佸鐞嗘椂搴忔敹鏁涢棶棰樸侽penCL緙栬瘧鍣ㄧ殑鐩殑鏄府鍔╄璁′漢鍛樿嚜鍔ㄥ畬鎴愭墍鏈夎繖浜涙楠わ紝浣夸粬浠兘澶熼泦涓簿鍔涘畾涔夌畻娉曪紝鑰屼笉鏄噸鐐瑰叧娉ㄤ箯鍛崇殑紜歡璁捐銆備互榪欑鏂瑰紡榪涜璁捐錛岃璁′漢鍛樺緢瀹規槗縐繪鍒版柊FPGA錛屾ц兘鏇村ソ錛屽姛鑳芥洿寮猴紝榪欐槸鍥犱負OpenCL緙栬瘧鍣ㄥ皢鐩稿悓鐨勯珮綰ф弿榪拌漿鎹負嫻佹按綰匡紝浠庤屽彂鎸ヤ簡FPGA鏂板櫒浠剁殑浼樺娍銆?/span>

妗堜緥錛歁onteCarloBlack-Scholes鏂規硶
鍦ㄩ噾铻嶅競鍦轟笂鏈閲嶈鐨勪竴涓熀鍑嗘祴璇曟柟娉曟槸閫氳繃Monte Carlo Black-Scholes鏂規硶璁$畻鏈熸潈浠鋒牸銆傝鏂規硶鍩轟簬瀵瑰簳灞傝偂紲ㄤ環鏍肩殑闅忔満浠跨湡錛屼互鍙婃暟鐧句竾涓嶅悓璺緞涓婄殑騫沖潎棰勬湡鏀剁泭銆傚浘8浠ュ浘褰㈠寲鐨勬柟寮忔樉紺轟簡榪欑被浠跨湡鐨勪竴涓緥瀛愩?/p>
![]()
鍥?鏄劇ず浜嗚繘琛岃繖涓璁$畻鐨勯珮綰х畻娉曠粨鏋勩傞鍏堥噰鐢∕ersenne鏃嬭漿闅忔満鏁板彂鐢熷櫒鏉ュ垱寤哄潎鍖鍒嗗竷鐨勬暟鍊箋傚皢闅忔満鏁板簭鍒楅佸叆閫嗘鎬佺瘡縐瘑搴﹀嚱鏁幫紝浠ヤ駭鐢熸鎬佸垎甯冨簭鍒椼傜劧鍚庯紝浣跨敤鍑犱綍甯冩湕榪愬姩錛岃繖浜涢殢鏈烘暟鐢ㄤ簬浠跨湡鑲$エ浠鋒牸鐨勫彉鍖栥傚湪姣忎竴浠跨湡閫氳礬鐨勬渶鍚庯紝璁板綍鐪嬫定鏈熸潈鐨勬敹鐩婏紝榪涜騫沖潎鏉ヤ駭鐢熸敹鐩婇鏈熷箋傛暣涓畻娉曢氳繃澶х害300琛岀殑OpenCL浠g爜鏉ュ疄鐜幫紝鍙互浠嶧PGA縐繪鍒癈PU銆丟PU銆?/span>

鍒╃敤閽堝Altera FPGA寮鍙戠殑OpenCL宸ヤ綔鍙幫紝鍙互浜х敓寰堝ソ鐨勫熀鍑嗘祴璇曠粨鏋滐紝濡傝〃1鎵紺恒備笌鐩稿簲鐨凣PU鐩告瘮錛岄潰鍚慡tratix? IV FPGA EP4SGX530鐨凮penCL宸ヤ綔鍙板湪鍚炲悙閲忎笂瓚呰繃浜咰PU鍜孏PU銆備笌鐩稿簲鐨凣PU鐩告瘮錛屽湪鎵ц鐩稿悓鐨勪唬鐮佹椂錛孎PGA瑙e喅鏂規涓嶄絾鎻愰珮浜嗗悶鍚愰噺錛屼繚瀹堜及璁★紝鍔熻椾篃鍙湁鍏朵簲鍒嗕箣涓銆傞熺巼鍜岄珮鍔熸晥鐩哥粨鍚堬紝闄嶄綆浜嗗ぇ璁$畻閲忓簲鐢ㄧ殑鍔熻楅渶姹傘?/span>

緇撹
鍒╃敤FPGA涓婄殑OpenCL鏍囧噯錛屼笌鐩墠鐨勭‖浠朵綋緋葷粨鏋?CPU銆丟PU錛岀瓑)鐩告瘮錛岃兘澶熷ぇ騫呭害鎻愰珮鎬ц兘錛屽悓鏃墮檷浣庝簡鍔熻椼傛澶栵紝涓庝嬌鐢╒erilog鎴栬匳HDL絳夊簳灞傜‖浠舵弿榪拌璦(HDL)鐨勪紶緇烣PGA寮鍙戞柟娉曠浉姣旓紝浣跨敤OpenCL鏍囧噯銆佸熀浜嶧PGA鐨勬販鍚堢郴緇?CPU+FPGA)鍏鋒湁鏄庢樉鐨勪駭鍝佸強鏃墮潰甯備紭鍔褲侫ltera浜?010騫村姞鍏hronos闆嗗洟錛屼負鏍囧噯寤鴻鍋氬嚭浜嗙Н鏋佽礎鐚?/span>
鍘熸枃杞嚜錛?a >http://www.ednchina.com/ART_8800501745_19_35499_AN_a996b8f4.HTM