å
容
ããŒã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ã¹ãã£ã³ãšåŒã°ããŸãã ãã®ã¢ã«ãŽãªãºã ã¯
æä»çã¹ãã£ã³ãå®è£
ããåã®ã¢ã«ãŽãªãºã ãããè€éã§ãããå¿
èŠãªæäœãå°ãªããªããŸãã ã¢ã«ãŽãªãºã ã®äž»ãªã¢ã€ãã¢ã¯ã䞊åç³ã¿èŸŒã¿ã¢ã«ãŽãªãºã ã®å®è£
ãæ³šææ·±ãèŠããšãæçµå€ãèšç®ããéçšã§ãããšãã°ãæåã®ã¹ãããã®åŸãå€
a 1 * a 2 ãa 3 * a 4 ã...ãa n-1 * a n ã2çªç®ã®ã¹ãããã®åŸ-å€
a 1 * a 2 * a 3 * a 4 ãa 5 * a 6 * a 7 * a 8 ...ãªã©ã ãããã®å€ãç Žæ£ãããªãå Žåãããšãã°æåã®6ã€ã®èŠçŽ ã®ç³ã¿èŸŒã¿ãéåžžã«è¿
éã«èšç®ã§ããŸã-æåã®4ã€ã®èŠçŽ ãšèŠçŽ
a 5 ã a 6ã®æ¢ã«èšç®ãããç³ã¿èŸŒã¿å€ãååŸããããããã厩å£ããããã ãã§ååã§ãã ãããã£ãŠãã¢ã«ãŽãªãºã ã¯å®éã«ã¯ç³ã¿èŸŒã¿ãã§ãŒãºãšãããŠã³ã¹ã€ãŒãïŒãã¹ã€ãŒãããŠã³ãã®ãããªãã®ïŒãšåŒã°ãã2çªç®ã®ãã§ãŒãºã®2ã€ã®ãã§ãŒãºã§æ§æãããŸãã ã°ã©ãã£ã«ã«ã«ãæåã®ãã§ãŒãºã¯æ¬¡ã®ãšããã§ãïŒ8èŠçŽ ã®åãé
åã®äŸãšåèšæŒç®åã䜿çšïŒïŒ

ã€ãŸããå®éã«ã¯éåžžã®ç³ã¿èŸŒã¿ã¢ã«ãŽãªãºã ã§ãèŠçŽ
a i ãa i + 1 ã...ãa i + kã«å¯ŸããŠèšç®ãããäžéç³ã¿èŸŒã¿ã®ã¿ããé
åå
ã®èŠçŽ
a i + kã眮ãæããŸãã
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ã€ã®ãããã¯å
ã®ãã¹ãŠã®ã¹ã¬ããã«å¯ŸããŠå
±éã®ãã¹ãã°ã©ã ãäœæããåãã¢ãããã¯æäœã䜿çšããŠã«ãŒãã«ã®æåŸã«è¿œå ããããšã§ãã°ããŒãã«ãžã®ãã®æ£ã°ã©ãã ãŸãããããã¯ã®äžè¬çãªãã¹ãã°ã©ã ãäœæããã«ã¯ããããã¯ã®äžè¬çãªã¡ã¢ãªã§ã¢ãããã¯æäœã䜿çšããå¿
èŠããããŸãããã°ããŒãã«ã¡ã¢ãªã§ã®ã¢ãããã¯æäœãããã¯ããã«é«éã§ãã
ãããã«
ãã®ããŒãã§ã¯ãå€ãã®äžŠåã¢ã«ãŽãªãºã ã®åºæ¬çãªããªããã£ãã«ã€ããŠèª¬æããŸãã ãããã®ããªããã£ãã®ã»ãšãã©ã®å®çšçãªå®è£
ã«ã€ããŠã¯ã次ã®ããŒãã§èª¬æããŸããããã§ã¯ãäŸãšããŠãããåäœã®ãœãŒããèšè¿°ããŸãã