å 容
ããŒã1ïŒã¯ããã«ã
ããŒã2ïŒGPUããŒããŠã§ã¢ãšäžŠåéä¿¡ãã¿ãŒã³ã
ããŒã3ïŒåºæ¬çãªGPUã¢ã«ãŽãªãºã ïŒåæžãã¹ãã£ã³ãããã³ãã¹ãã°ã©ã ã
ããŒã4ïŒåºæ¬çãªGPUã¢ã«ãŽãªãºã ïŒã³ã³ãã¯ããªã»ã°ã¡ã³ãã¹ãã£ã³ã䞊ã¹æ¿ãã ããã€ãã®ã¢ã«ãŽãªãºã ã®å®çšåã
ããŒã5ïŒGPUããã°ã©ã ã®æé©åã
ããŒã6ïŒé次ã¢ã«ãŽãªãºã ã®äžŠååã®äŸã
ããŒã7ïŒäžŠåããã°ã©ãã³ã°ãåç䞊ååŠçã®è¿œå ãããã¯ã
å
責äºé
ãã®éšåã¯äž»ã«çè«çãªãã®ã§ãããå®éã«ã¯å¿
èŠãªãã§ãããããããã®ã¢ã«ãŽãªãºã ã¯ãã¹ãŠãå€ãã®ã©ã€ãã©ãªã«é·ãéå®è£
ãããŠããŸãã
ã¹ãããæ°ïŒã¹ãããïŒvsæäœæ°ïŒäœæ¥ïŒ
å€ãã®Habrèªè ã¯ãã¢ã«ãŽãªãºã ã®å®è¡æéãæšå®ããããã«äœ¿çšããã倧ããªOè¡šèšæ³ã«ãããã粟éããŠããã§ãããã ããšãã°ã ããŒãžãœãŒãã¢ã«ãŽãªãºã ã®å®è¡æéã¯OïŒn * logïŒnïŒïŒãšæšå®ã§ãããšèšãããŠããŸãã å®éãããã¯å®å šã«æ£ããããã§ã¯ãããŸããã1ã€ã®ããã»ããµã䜿çšããå Žåã®ãã®ã¢ã«ãŽãªãºã ã®æäœæéãŸãã¯æäœã®ç·æ°ã¯OïŒn * logïŒnïŒïŒãšæšå®ã§ãããšèšãæ¹ãæ£ããã§ãããã æ確ã«ããããã«ãã¢ã«ãŽãªãºã å®è¡ããªãŒãæ€èšããŸãã
ãããã£ãŠã nåã®èŠçŽ ã®äžŠã¹æ¿ããããŠããªãé åããå§ããŸãã 次ã«ã2ã€ã®ååž°åŒã³åºããè¡ãããé åã®å·Šååãšå³ååããœãŒããããŸãããã®åŸããœãŒããããååãããŒãžããã OïŒnïŒæäœã§å®è¡ãããŸãã ãœãŒããããéšåã®ãµã€ãºã1ã«ãªããŸã§ååž°åŒã³åºããå®è¡ãããŸã-1ã€ã®èŠçŽ ã®é åã¯åžžã«ãœãŒããããŸãã ããã¯ãããªãŒã®é«ããOïŒlogïŒnïŒïŒã§ããã OïŒnïŒæäœãåã¬ãã«ã§å®è¡ãããããšãæå³ããŸãïŒç¬¬2ã¬ãã«ã§ã Oã§2åã®ããŒãžïŒn / 2ïŒ ã第3ã¬ãã«ã§ã Oã§4åã®ããŒãžïŒ n / 4ïŒãªã©ïŒã åèš-OïŒn *ãã°ïŒnïŒïŒæäœã ããã»ããµã1ã€ãããªãå ŽåïŒããã»ããµã¯CPUã§ã¯ãªãæœè±¡çãªããã»ããµãæããŸãïŒãããã¯ã¢ã«ãŽãªãºã ã®å®è¡æéã®æšå®å€ã§ããããŸãã ãã ãã ããã€ãã®ãã³ãã©ãŒãšäžç·ã«ãªãããã®æ¹æ³ã§ããŒãžã䞊åã«å®è¡ã§ãããšä»®å®ããŸã -ããããåã¬ãã«ã§OïŒnïŒæäœãåå²ããŠãåãã³ãã©ãŒãäžå®æ°ã®æäœãå®è¡ããããã«ããŸã-ãã®åŸãåã¬ãã«ãOã«å¯ŸããŠå®è¡ãããŸãïŒ 1ïŒæéãããã³ã¢ã«ãŽãªãºã å šäœã®å®è¡æéã®æšå®å€ã¯OïŒlogïŒnïŒïŒã«çãããªããŸã ïŒ
ç°¡åã«èšãã°ãã¹ãããæ°ã¯ã¢ã«ãŽãªãºã å®è¡ããªãŒã®é«ããšçãããªããŸãïŒåãã¬ãã«ã®æäœãäºãã«ç¬ç«ããŠå®è¡ã§ããå Žå-ãããã£ãŠãæšæºåœ¢åŒã§ã¯ãããŒãžãœãŒãã¢ã«ãŽãªãºã ã®ã¹ãããæ°ã¯OïŒlogïŒnïŒïŒãšçãããããŸãã-åãã¬ãã«ã®æäœã¯ç¬ç«ïŒããããæäœã®æ°-æäœã®æ°:)ãããã£ãŠãGPUã§ããã°ã©ãã³ã°ãããšãã¯ãæäœã®ç·æ°ãå¢ãããŠããããå°ãªãã¹ãããã§ã¢ã«ãŽãªãºã ã䜿çšããã®ãçã«ããªã£ãŠããŸãã
次ã«ã3ã€ã®åºæ¬çãªäžŠåããã°ã©ãã³ã°ã¢ã«ãŽãªãºã ã®ç°ãªãå®è£ ãæ€èšããã¹ãããæ°ãšæäœæ°ã®èŠ³ç¹ããããããåæããŸãã
ç³ã¿èŸŒã¿ïŒåæžïŒ
ç³ã¿èŸŒã¿æŒç®ã¯ãèŠçŽ ã®é åã«å¯ŸããŠå®è¡ãããç³ã¿èŸŒã¿æŒç®åã«ãã£ãŠæ±ºå®ãããŸãã ç³ã¿èŸŒã¿æŒç®åã¯ã ãã€ããªããã³é£æ³ã§ãªããã°ãªããŸãããã€ãŸãã2ã€ã®èŠçŽ ãå ¥åãšããŠåãåããçåŒa * ïŒb * cïŒ=ïŒa * bïŒ * cãæºãããŸã ãããã§ã *ã¯æŒç®åæå®ã§ãïŒå¯ææ§ããããã£a * b =ãšæ··åããªãã§ãã ããïŒ b * a ïŒã èŠçŽ ã®é åa 1 ã...ãa nã«å¯Ÿããç³ã¿èŸŒã¿æŒç®ã¯ã ïŒ...ïŒïŒa 1 * a 2 ïŒ * a 3 ïŒ... * a n ïŒãšããŠå®çŸ©ãããŸã ã ç³ã¿èŸŒã¿æŒç®ãå®è£ ããããã®é次ã¢ã«ãŽãªãºã å®è¡ããªãŒã®åœ¢åŒã¯æ¬¡ã®ãšããã§ãã
æããã«ããã®ã¢ã«ãŽãªãºã ã§ã¯ãæäœã®æ°ã¯ã¹ãããã®æ°ã«çããã n-1 = OïŒnïŒã«çãããªããŸãã
ã䞊ååãã¢ã«ãŽãªãºã ã«èæ ®ç³ã¿èŸŒã¿æŒç®åã®çµåæ§ã®æ§è³ªãåãããã«ååã§ãããåé 眮ãã©ã±ããå ŽæïŒïŒ...ïŒïŒ1 * 2ïŒ* 3ïŒ... * NïŒ=ïŒ 1 * 2ïŒ*ïŒ a 3 * a 4 ïŒ * ... * ïŒa n-1 * a n ïŒ ã ã€ãŸããå€ïŒa 1 * a 2 ïŒ ã ïŒa 3 * a 4 ïŒãªã©ãåæã«èšç®ããçµæã®å€ã«å¯ŸããŠç³ã¿èŸŒã¿æŒç®ãå®è¡ã§ããŸãã ãã®ãããªã¢ã«ãŽãªãºã ã®å®è¡ããªãŒïŒ
çŸåšãã¹ãããæ°ã¯OïŒlogïŒnïŒïŒã«çãããæäœæ°ã¯OïŒnïŒã§ãããããã¯æå ±ã§ã-æ¬åŒ§ã®åçŽãªé åã«ãããæäœæ°ã¯åããŸãŸã§ãã¹ãããæ°ãå€§å¹ ã«å°ãªãã¢ã«ãŽãªãºã ãåŸãããŸããïŒ
ã¹ãã£ã³
ã¹ãã£ã³æäœãèŠçŽ ã®é åã«å¯ŸããŠå®è¡ãããŸãããã¹ãã£ã³æŒç®åãšã¢ã€ãã³ãã£ãã£èŠçŽ ã«ãã£ãŠæ±ºå®ãããŸã ã ã¹ãã£ã³æŒç®åã¯ãç³ã¿èŸŒã¿æŒç®åãšåãèŠä»¶ãæºãããŠããå¿ èŠããããŸãã ãŠãããèŠçŽ ã«ã¯ãããããã£I * a = aãå¿ èŠã§ã ãããã§ã Iã¯ãŠãããèŠçŽ ã *ã¯ã¹ãã£ã³æŒç®åã aã¯ãã®ä»ã®èŠçŽ ã§ãã ããšãã°ãå ç®æŒç®åã®å Žåãä¹ç®æŒç®å-1ã®å ŽåãåäœèŠçŽ ã¯0ã«ãªããŸããèŠçŽ a 1 ã...ãa nã®é åã«ã¹ãã£ã³æäœãé©çšããçµæã¯ãåã次å nã®é åã«ãªããŸãã ã¹ãã£ã³æäœã«ã¯2ã€ã®ã¿ã€ãããããŸãã
- ã¹ãã£ã³ãå«ã-çµæã¯æ¬¡ã®ããã«èšç®ãããŸãïŒ [reduceïŒ[a 1 ]ïŒãreduceïŒ[a 1 ãa 2 ]ïŒã...ãreduceïŒ[a 1 ã...ãa n ]ïŒ] - iã®ä»£ããã«åºåé åã®içªç®ã®å ¥åèŠçŽ ã¯ã içªç®ã®èŠçŽ èªäœãå«ã以åã®ãã¹ãŠã®èŠçŽ ã®ç³ã¿èŸŒã¿æŒç®ãé©çšããçµæã«ãªããŸã ã
- æä»çã¹ãã£ã³-çµæã¯æ¬¡ã®ããã«èšç®ãããŸãïŒ [IãreduceïŒ[a 1 ]ïŒã...ãreduceïŒ[a 1 ã...ãa n-1 ]ïŒ] -åºåé åã®içªç®ã®å ¥åèŠçŽ ã®ä»£ããã«ããã¯ç§ã«çªç®ã®èŠçŽ èªäœãé€ããã¹ãŠã®å è¡èŠçŽ ã®ç³ã¿èŸŒã¿æŒç®ãé©çšããçµæã§ããã-åºåé åã®æåã®èŠçŽ ã¯åäžèŠçŽ ã§ãããã«ã
ã¹ãã£ã³æäœèªäœã¯ããã»ã©æçšã§ã¯ãããŸããããå€ãã®äžŠåã¢ã«ãŽãªãºã ã®æ®µéã®1ã€ã§ãã ããªãã®æå ã§å æ¬çãªã¹ãã£ã³ã®å®è£ ããããæä»çãªã¹ãã£ã³ãå¿ èŠãªå Žåãé å[a 1 ã...ãa n ]ã®ä»£ããã«é å[Iãa 1 ã...ãa n-1 ]ãæž¡ãã ãã§ãã éã®å Žåã¯ãé å[a 1 ã...ãa n ãI]ãæž¡ããçµæã®é åã®æåã®èŠçŽ ãç Žæ£ããŸãã ãããã£ãŠãäž¡æ¹ã®ã¿ã€ãã®ã¹ãã£ã³ã¯äºææ§ããããŸãã ã¹ãã£ã³æäœã®ã·ãŒã±ã³ã·ã£ã«å®è£ ã®ããªãŒã¯ãã³ã³ããªã¥ãŒã·ã§ã³æäœã®å®è¡ããªãŒãšåãã«èŠããŸã-ããªãŒã®åé ç¹ã®çŽåã«ãã³ã³ããªã¥ãŒã·ã§ã³ã®çŸåšã®çµæïŒå æ¬çã¹ãã£ã³ã®æåã®èšç®ã®åã«1ãæä»çã¹ãã£ã³ã®I ïŒãåºåé åã®å¯Ÿå¿ããäœçœ®ã«æžã蟌ã¿ãŸãã
ãããã£ãŠããã®ãããªã¢ã«ãŽãªãºã ã®ã¹ããããšæäœã®æ°ã¯n-1 = OïŒnïŒã«çãããªããŸãã
ã¢ã«ãŽãªãºã ã®ã¹ãããæ°ãæžããæãç°¡åãªæ¹æ³ã¯éåžžã«ç°¡åã§ã-ã¹ãã£ã³æäœã¯æ¬è³ªçã«ç³ã¿èŸŒã¿æäœã«ãã£ãŠæ±ºå®ãããã®ã§ãç³ã¿èŸŒã¿æäœã®äžŠåããŒãžã§ã³ãnåã ãéå§ã§ããªãã®ã¯ãªãã§ããïŒ ãã®å Žåã®ã¹ãããæ°ã¯å®éã«æžå°ããŸã-ãã¹ãŠã®ç³ã¿èŸŒã¿ã¯ç¬ç«ããŠèšç®ã§ãããããã¹ãããã®åèšæ°ã¯æ倧ã®ã¹ãããæ°ãæã€ç³ã¿èŸŒã¿ãã€ãŸãå ¥åé åå šäœã§èšç®ãããæåŸã®ç³ã¿èŸŒã¿ã«ãã£ãŠæ±ºãŸããŸãã åèš-OïŒãã°ïŒnïŒïŒã¹ãããã ããããªããããã®ãããªã¢ã«ãŽãªãºã èžã¿èŸŒã¿æäœé-æåã®ç³ã¿èŸŒã¿æäœã¯ã第0ïŒé€ãã¡ã¢ãªåäœïŒãå¿ èŠ- 1ã...ãæåŸ- n-1åã®æäœãåèš- 1 + 2 + ... + N-1 = ïŒn-1ïŒ*ïŒnïŒ/ 2 = OïŒn 2 ïŒ ã
ã¹ãã£ã³æäœãå®è¡ããããã®æäœã¢ã«ãŽãªãºã ã®æ°ã®èŠ³ç¹ãããããå¹ççãª2ãæ€èšããŠãã ããã æåã®ã¢ã«ãŽãªãºã ã®äœæè ã¯Daniel HillisãšGuy Steeleã§ããã¢ã«ãŽãªãºã ã®ååã¯HillsïŒSteele scanã§ãã ã¢ã«ãŽãªãºã ã¯éåžžã«åçŽã§ãpython-pseudocodeã®6è¡ã§èšè¿°ã§ããŸãã
def hillie_steele_scan(io_arr): N = len(io_arr) for step in range(int(log(N, 2))+1): dist = 2**step for i in range(N-1, dist-1, -1): io_arr[i] = io_arr[i] + io_arr[i-dist]
ãŸãã¯ãèšãæãããšãã¹ããã0ããå§ãŸããã¹ãããlog 2 ïŒNïŒïŒå°æ°éšãæãç³ãïŒã§çµãããåã¹ãããã¹ãããã§ãã€ã³ããã¯ã¹iã®äžã®åèŠçŽ ã¯ãå€ãa [i] = a [i] + a [i-2 ã¹ããããšããŠæŽæ°ããŸã] ïŒåœç¶ã 2 ã¹ããã <= iã®å Žå ïŒã é ã®äžã§é åã«å¯Ÿãããã®ã¢ã«ãŽãªãºã ã®å®è¡ããã¬ãŒã¹ãããšããããæ£ããçç±ãæããã«ãªããŸããã¹ããã0ã®åŸãåèŠçŽ ã«ã¯ããèªäœãšå·ŠåŽã®1ã€ã®é£æ¥èŠçŽ ã®åèšãå«ãŸããŸãã ã¹ããã1ã®åŸ-ããªãèªèº«ãšå·Šã®3ã€ã®é£æ¥èŠçŽ ã®åèš...ã¹ãããn-ããªãèªèº«ãšå·Šã®2 n + 1 -1èŠçŽ ã®åèš-ã¹ãããæ°ãlog 2 ïŒNïŒã®æŽæ°éšã«çããå ŽåãæåŸã®ã¹ãããã®åŸã«é åãåŸãããããšã¯æããã§ãã¹ãã£ã³ãå«ãæäœã®å®è¡ã«å¯Ÿå¿ããŸãã ã¢ã«ãŽãªãºã ã®èª¬æãããã¹ãããæ°ãlog 2 ïŒNïŒ+ 1 = OïŒlogïŒnïŒïŒã§ããããšãæããã§ãã æäœã®æ°ã¯ïŒN-1ïŒ+ïŒN-2ïŒ+ïŒN-4ïŒ... +ïŒN-2 log 2 ïŒNïŒ ïŒ= OïŒN * logïŒNïŒïŒã§ãã 8èŠçŽ ã®é åãšsumæŒç®åã®äŸã䜿çšããã¢ã«ãŽãªãºã å®è¡ããªãŒã¯ã次ã®ããã«ãªããŸãã
2çªç®ã®ã¢ã«ãŽãªãºã ã®äœæè ã¯Guy Blellochã§ãã¢ã«ãŽãªãºã ã¯ïŒèããŠãã人ïŒ-Blellochã¹ãã£ã³ãšåŒã°ããŸãã ãã®ã¢ã«ãŽãªãºã ã¯æä»çã¹ãã£ã³ãå®è£ ããåã®ã¢ã«ãŽãªãºã ãããè€éã§ãããå¿ èŠãªæäœãå°ãªããªããŸãã ã¢ã«ãŽãªãºã ã®äž»ãªã¢ã€ãã¢ã¯ã䞊åç³ã¿èŸŒã¿ã¢ã«ãŽãªãºã ã®å®è£ ã泚ææ·±ãèŠããšãæçµå€ãèšç®ããéçšã§ãããšãã°ãæåã®ã¹ãããã®åŸãå€
ã€ãŸããå®éã«ã¯éåžžã®ç³ã¿èŸŒã¿ã¢ã«ãŽãªãºã ã§ãèŠçŽ
2çªç®ã®ãã§ãŒãºã¯æåã®ãã§ãŒãºã®ã»ãŒé¡åã§ããã2ã€ã®å€ãè¿ããç¹å¥ãªãæŒç®åã䜿çšããããã§ãŒãºã®éå§æã«é åã®æåŸã®å€ãåäžèŠçŽ ïŒå ç®æŒç®åã®å Žåã¯0ïŒã«çœ®ãæããããŸãã
ãã®ãç¹å¥ãªãæŒç®åã¯ãå·Šãšå³ã®2ã€ã®å€ãåããŸãããå·Šã®åºåå€ãšããŠã¯åã«å³ã®å ¥åãè¿ããå³ã®åºåãšããŠã¯ã¹ãã£ã³æŒç®åãå·Šãšå³ã®å ¥åå€ã«é©çšããçµæã§ãã ãããã®æäœã¯ãã¹ãŠãèšç®ãããäžéããã¿èŸŒã¿ãæçµçã«æ£ããæãããã¿ãç®çã®çµæãåŸãããã«å¿ èŠã§ã-å ¥åé åã®ã¹ãã£ã³ãé€å€ããŸãã ãã®ã¢ã«ãŽãªãºã ã®å³ããæãããªããã«ãæäœã®ç·æ°ã¯N-1 + N-1 + N-1 = OïŒNïŒã§ãããã¹ãããæ°ã¯2 * log 2 ïŒNïŒ= OïŒlogïŒNïŒïŒã§ãã ãã€ãã®ããã«ãããªãã¯ãã¹ãŠã®è¯ãïŒãã®å Žåã¯æ¹åããã挞è¿æ§ïŒã«æ¯æãå¿ èŠããããŸã-ã¢ã«ãŽãªãºã ã¯æ¬äŒŒã³ãŒãã§ããè€éã§ããã ãã§ãªããGPUã«å¹ççã«å®è£ ããããšãããå°é£ã§ã-ã¢ã«ãŽãªãºã ã®æåã®ã¹ãããã§ã¯ã䞊è¡ããŠè¡ãããšãã§ããå€ãã®äœæ¥ããããŸã; 第1ãã§ãŒãºã®çµäºæããã³ç¬¬2ãã§ãŒãºã®éå§æã«ãåã¹ãããã§å®è¡ãããäœæ¥ã¯ã»ãšãã©ãããŸããã ãããŠã第2ãã§ãŒãºã®çµããã«ãåã¹ãããã§åã³å€ãã®äœæ¥ãè¡ããŸãïŒãšããã§ãããã«èå³æ·±ã䞊åã¢ã«ãŽãªãºã ã«ã¯ããã®ãããªå®è¡ãã¿ãŒã³ããããŸãïŒã ãã®åé¡ã®è§£æ±ºçã®1ã€ã¯ã2ã€ã®ç°ãªãã³ã¢ãäœæããããšã§ãã1ã€ã¯1ã€ã®ã¹ãããã®ã¿ãå®è¡ããã¢ã«ãŽãªãºã ã®æåãšæåŸã«äœ¿çšãããŸãã 2ã€ç®ã¯ãããã€ãã®ã¹ããããé£ç¶ããŠå®è¡ããããã«èšèšãããå®è¡ã®éäžã§ãã€ãŸããã§ãŒãºéã®ç§»è¡æã«äœ¿çšãããŸãã ããŠããã¹ãåŽã§ã¯ãçŸåšã®ã¹ãããã§å®è¡ããå¿ èŠãããäœæ¥éã«å¿ããŠãä»ã©ã®ã«ãŒãã«ãåŒã³åºããã決å®ãããŸãã
ãã¹ãã°ã©ã
éå ¬åŒã«ã¯ãGPUããã°ã©ãã³ã°ã®ã³ã³ããã¹ãïŒããã³ããã ãã§ãªãïŒã®ãã¹ãã°ã©ã ã¯ãã»ã«ã®é åã«ãããèŠçŽ ã®é åã®ååžãæããåã»ã«ã«ã¯ç¹å®ã®ããããã£ãæã€èŠçŽ ã®ã¿ãå«ããããšãã§ããŸãã ããšãã°ã身é·ãäœéãªã©ããã¹ã±ããããŒã«éžæã«é¢ããããŒã¿ãæã£ãŠãã 身é·ã180 cmæªæºã180 cmãã190 cmãããã³> 190 cmã®ãã¹ã±ããããŒã«éžæã®æ°ãç¥ãããã®ã§ãã
ãã€ãã®ããã«ããã¹ãã°ã©ã ãèšç®ããããã®ã·ãŒã±ã³ã·ã£ã«ã¢ã«ãŽãªãºã ã¯éåžžã«åçŽã§ããé åå ã®ãã¹ãŠã®èŠçŽ ã調ã¹ãŠã察å¿ããã»ã«ã§åèŠçŽ ã®å€ã1ãã€å¢ãããŸãã ã¹ããããšæäœã®æ°ã¯OïŒNïŒã§ãã
ãã¹ãã°ã©ã ãèšç®ããããã®æãåçŽãªäžŠåã¢ã«ãŽãªãºã ã¯ãé åèŠçŽ ã®äžæµã§éå§ããããšã§ããåã¹ããªãŒã ã¯ããã®èŠçŽ ã«å¯ŸããŠã®ã¿ã»ã«å ã®å€ãå¢ãããŸãã åœç¶ããã®å Žåãã¢ãããã¯æäœã䜿çšããå¿ èŠããããŸãã ãã®æ¹æ³ã®æ¬ ç¹ã¯é床ã§ãã ã¢ãããã¯æäœã¯ãã¹ã¬ããã«ã»ã«ãžã®ã¢ã¯ã»ã¹ãåæãããèŠçŽ ã®æ°ãå¢ãããšããã®ã¢ã«ãŽãªãºã ã®å¹çãäœäžããŸãã
ãã¹ãã°ã©ã ã®æ§ç¯ã§ã¢ãããã¯æäœã®äœ¿çšãåé¿ããæ¹æ³ã®1ã€ã¯ãåã¹ããªãŒã ã«åå¥ã®ã»ã«ã®ã»ããã䜿çšãããããã®ããŒã«ã«ãã¹ãã°ã©ã ãç³ã¿èŸŒãããšã§ãã æ¬ ç¹ã¯ãã¹ã¬ããæ°ãå€ããšããã¹ãŠã®ããŒã«ã«ãã¹ãã°ã©ã ãæ ŒçŽããã®ã«ååãªã¡ã¢ãªããªãå¯èœæ§ãããããšã§ãã
æãåçŽãªã¢ã«ãŽãªãºã ã®å¹çãé«ãããã1ã€ã®ãªãã·ã§ã³ã¯ãCUDAã®ä»æ§ãã€ãŸãå ±æã¡ã¢ãªãæã€ãããã¯ã§ã¹ã¬ãããå®è¡ããããšãèæ ®ã«å ¥ãã1ã€ã®ãããã¯å ã®ãã¹ãŠã®ã¹ã¬ããã«å¯ŸããŠå ±éã®ãã¹ãã°ã©ã ãäœæããåãã¢ãããã¯æäœã䜿çšããŠã«ãŒãã«ã®æåŸã«è¿œå ããããšã§ãã°ããŒãã«ãžã®ãã®æ£ã°ã©ãã ãŸãããããã¯ã®äžè¬çãªãã¹ãã°ã©ã ãäœæããã«ã¯ããããã¯ã®äžè¬çãªã¡ã¢ãªã§ã¢ãããã¯æäœã䜿çšããå¿ èŠããããŸãããã°ããŒãã«ã¡ã¢ãªã§ã®ã¢ãããã¯æäœãããã¯ããã«é«éã§ãã
ãããã«
ãã®ããŒãã§ã¯ãå€ãã®äžŠåã¢ã«ãŽãªãºã ã®åºæ¬çãªããªããã£ãã«ã€ããŠèª¬æããŸãã ãããã®ããªããã£ãã®ã»ãšãã©ã®å®çšçãªå®è£ ã«ã€ããŠã¯ã次ã®ããŒãã§èª¬æããŸããããã§ã¯ãäŸãšããŠãããåäœã®ãœãŒããèšè¿°ããŸãã