¥Ø«e¦ì¸m¡G ­º­¶ > ¤½¶}½Òµ{ > ¸ê°TºÞ²z > µ{¦¡»y¨¥ > GPU»PCUDA¥[³t¹Bºâªº­ì²z»P¹ê§@

GPU»PCUDA¥[³t¹Bºâªº­ì²z»P¹ê§@

¥»½Òµ{­ÝÅU²z½×¤Î¹ê§@¡A¥H¤Þ¾ÉCUDA ¾Ç­û¯à°÷¦bµu®É¶¡¤º§Ö³t¶i¤JCUDA ...

¡@¡@CUDA¬O¤@ºØ¥ÑNVIDIA´£¥Xªº¨Ã¥Ñ¨ä»s³yªº¹Ï§Î³B²z³æ¤¸¡]GPUs¡^¹ê²{ªº¤@ºØ¥­¦æ­pºâ¬[ºc¤Îµ{¦¡³]­p¼Ò«¬¡CCUDAµ¹µ{¦¡¶}µo¤H­û´£¨Ñª½±µ¦s¨úCUDA GPUs¤¤ªºµêÀÀ«ü¥O¶°©M¥­¦æ­pºâ¤¸¥óªº°O¾ÐÅé¡C³nÅéµo®iªÌ¥i¥H³q¹LCUDA¥[³t®w¡A½sĶ¾¹«ü¥O¥H¤Î²Å¦X¤u·~¼Ð·Çªºµ{¦¡³]­p»y¨¥¡]¦pC, C++©MFortran, Python¡^ÂX®i¹ïCUDA¥­¥x¶i¦æ¾Þ§@¡C¥»½Òµ{­ÝÅU²z½×¤Î¹ê§@¡A¥H¤Þ¾É CUDA ¾Ç­û¯à°÷¦bµu®É¶¡¤º§Ö³t¶i¤J CUDA ªº¥­¦æ¥@¬É¡C­º¥ý±q¥­¦æ­pºâ¡BGPUªº¤¶²Ð¤Á¤J¡A¦A±a¨ìCUDA¥­¦æ­pºâ¬[ºc¡A»P²`«×¾Ç²ßªºÀ³¥Î¡A¨ä¦¸¡A·|³z¹LC¡BPythonµ{¦¡»y¨¥¸Ì³Ì¯Ó®Éªº¤j³W¼Ò¨Ã¦æ¹Bºâªº°j°é¤Î°}¦Cµ¥µ{¦¡.

¥[¤J¦¬ÂÃ
¦¬¥ó¤Hemail¡G
±H¥ó¤H©m¦W¡G
±H¥ó¤Hemail¡G


GPU»PCUDA¥[³t¹Bºâªº­ì²z»P¹ê§@

¤W½Ò¦a§}¡G¤u¬ã°|¦ËªF¤¤¿³°|°Ï21À] 200-1±Ð«Ç (·s¦Ë¿¤¦ËªFÂí¤¤¿³¸ô¥|¬q 195¸¹ 21À] 200-1°V½m±Ð«Ç) ¹ê»Ú¤W½Ò¦aÂI¡A½Ð¨Ì¤W½Ò³qª¾¬°·Ç!

®É¼Æ¡G14

°_¨´¤é´Á¡G2020-09-01~2020-09-02

Ápµ¸¸ê°T¡G¶À¤p©j/03-5732034

³ø¦WºI¤î¤é¡G2020-09-01

½Òµ{Ãþ§O¡G¤H¤~°ö°V(½Òµ{)

¬¡°Ê¥N½X¡G2320060024

 

½Òµ{¤¶²Ð 

CUDA¡]Compute Unified Device Architecture¡^¬ONVIDIA©Ò±À¥Xªº¥­¦æ¹Bºâ¬[ºc¡A³z¹L¾r¶¿Ã¸¹Ï³B²z¾¹(GPU)ªº·¥­P«Â¤O¡A±aµ¹¹Bºâ®Ä¯à¤j´T´£¤É¡C¹Bºâ¤w±qCPU©Ò°õ¦æªº¡u¤¤¥¡³B²z¡vµo®i¦¨¥ÑCPU©MGPU°õ¦æªº¡u¦@¦P³B²z¡v¡CCUDA¬[ºc¤w¤º«Ø©ó¨äGeForce¡BION¡BQuadro©MTeslaø¹Ï³B²z¾¹¤¤¡A¬°À³¥Îµ{¦¡¶}µo¤H­û´£¨Ñ­«­nªº¦w¸Ë°ò¦¡CÀHµÛ¤H¤u´¼¯àªºµo®i¡A¦p¤µªºGPU¤w¸g¤£¦A§½­­©ó3D¹Ï§Î³B²z¤F¡A³z¹LCPU+GPU¤ÎCUDA¥­¦æ¹Bºâ¬[ºc¡AÂÇ¥H¥[³t¤j³W¼Ò¨Ã¦æ¬ì¾Ç¹Bºâ¡B²`«×¾Ç²ß¡B¤ÀªR¡B¹w´úµ¥¡A¨Ã¤w¬°¨T¨®¡B¤â¾÷¡B¥­ªO¹q¸£¡B­¸¦æ¾¹¤Î¾÷¾¹¤Hµ¥¸Ë¸m°^Äm±j¤jªº®Ä¯à«Â¤O¡C
 
CUDA¬O¤@ºØ¥ÑNVIDIA´£¥Xªº¨Ã¥Ñ¨ä»s³yªº¹Ï§Î³B²z³æ¤¸¡]GPUs¡^¹ê²{ªº¤@ºØ¥­¦æ­pºâ¬[ºc¤Îµ{¦¡³]­p¼Ò«¬¡CCUDAµ¹µ{¦¡¶}µo¤H­û´£¨Ñª½±µ¦s¨úCUDA GPUs¤¤ªºµêÀÀ«ü¥O¶°©M¥­¦æ­pºâ¤¸¥óªº°O¾ÐÅé¡C³nÅéµo®iªÌ¥i¥H³q¹LCUDA¥[³t®w¡A½sĶ¾¹«ü¥O¥H¤Î²Å¦X¤u·~¼Ð·Çªºµ{¦¡³]­p»y¨¥¡]¦pC, C++©MFortran, Python¡^ÂX®i¹ïCUDA¥­¥x¶i¦æ¾Þ§@¡C
 
¥»½Òµ{­ÝÅU²z½×¤Î¹ê§@¡A¥H¤Þ¾É CUDA ¾Ç­û¯à°÷¦bµu®É¶¡¤º§Ö³t¶i¤J CUDA ªº¥­¦æ¥@¬É¡C­º¥ý±q¥­¦æ­pºâ¡BGPUªº¤¶²Ð¤Á¤J¡A¦A±a¨ìCUDA¥­¦æ­pºâ¬[ºc¡A»P²`«×¾Ç²ßªºÀ³¥Î¡A¨ä¦¸¡A·|³z¹LC¡BPythonµ{¦¡»y¨¥¸Ì³Ì¯Ó®Éªº¤j³W¼Ò¨Ã¦æ¹Bºâªº°j°é¤Î°}¦Cµ¥µ{¦¡¨Ó¹ï¬M¸Ñ»¡CUDA¤§¹ê°È¹B§@¡C

 
½Òµ{¯S¦â/¥Ø¼Ð

½Òµ{¥Ø¼Ð
¥»½Òµ{«Y°w¹ïªì¶¥¾Ç­û´£¨Ñ²`«×¾Ç²ß°ò¥»­ì²z¬ÛÃö½Òµ{¡C³z¹L°ê»Ú¯Å»{ÃÒÁ¿®v¤Î°í±j®v¸ê°}®e¡Aµ²¦XÁͶաB²z½×»P¹ê§@¡A±a»â¾Ç­û¥Ñ²L¤J²`¡A³v¨B¤Þ¾É¾Ç­û±qÆ[©À¡B¬[ºc¡Bµ{¦¡ªº²z¸Ñ¶i¦Ó¥i¥H³Ì§Öªº³t«×¤W¤â CUDA ¥­¦æµ{¦¡ªº³]­p¡C¥u­n¬O¨ã³Æ¦³C/C++ µ{¦¡»y¨¥ªº³]­p°ò¦ªÌ§¡¥i°Ñ¥[¦¹½Òµ{¡A§Q¥Î¨â¤Ñªº®É¶¡§Ö³t¾Ç·| CUDA ¥­¦æ³B²zµ{¦¡ªº³]­p§Þ¥©¤Î¥Ø«e³Ì·s¥­¦æ²z©À¡A¤@¤â´x´¤¥´³y¤H¤u´¼¼z (AI) ªºÃöÁä§Þ³N¡C
 
¥»½Òµ{¤À¬°¨â¤Ñªº½Òµ{¡A²Ä¤@¤Ñ¬°GPU»P¥­¦æ¥[³t¡Fªx¤Æ¥­¦æ­pºâ--±qGPU¨ìCUDA¡A¥D­n¬°Á¿±Â¥­¦æ­pºâ»PGPU/CUDA °ò¦²z½×¡A¥]¬AGPUÀ³¥Î©ó¤@¯ë¤Æ¥­¦æ¹Bºâ¡Bµ{¦¡»y¨¥ªº°j°é¤Î°}¦Cµ¥³]­p¦Ò¶q¡F²Ä¤G¤Ñ¬°CUDA C/C++ ¥­¦æ¥[³t¹Bºâ¹ê§@¡A±N²z½×¹B¥Î©ó¹ê§@¤W¡CCUDA ¬O NVIDIA ªº¥­¦æ¹Bºâ¬[ºc¡A¥i¹B¥Î GPU ªº±j¤j³B²z¯à¤O¡A¤j´T¼W¥[¹Bºâ®Ä¯à¥H¤Î¦b±Nµ{¦¡¥­¦æ«á¦p¦ó¹F¨ì³Ì¨Î¤Æ¡C³Ì«á±q´X­Ó±`¨£ªºCUDA¥[³t®×¨Ò±j¤Æ¹B¥ÎGPU¥[³tªºÆ[©À°µ¬°¤§«á¥Î¦b¦Û¨­¶}µo±M®×¥[³tªº°Ñ¦Ò¡C
 
½Òµ{¯S¦â
1. ²©ö¡G¥ÎColab´£¨Ñªº§K¶OGPU¸ê·½§Y¥i»´ÃP¤JªùCUDAµ{¦¡³]­p¡C
2. ¹ê¥Î¡G§Ö³t¤F¸ÑGPU°ò¥»­ì²z¡A´x´¤¹ê»ÚÀ³¥Îªº­n»â¡A¯àÆF¬¡¹B¥Î¦b¦Û¨­°Ñ»Pªº±M®×­p¹º¤¤¡C
3. ²`¤J¡G±q°ò¦ªº¬ì¾Ç­pºâ(Vector Add) ¨ì³Q¼s¬°À³¥Îªº²`«×¯«¸gºô¸ô(Deep Learning)°µ¬°­Ó®×¬ã¨s¡A³zµø²`«×¾Ç²ß»PGPU¥[³tªº©³¼hÃö«Y¡C

½Òµ{®Ä¯q
�� ¬°¯à¨Ï¾Ç­û»´ÃP¦aÁA¸Ñ CUDA ªº²z©À¡A¥»½Òµ{°£¤F¥Ñ²L¤J²`¦aÁ¿­z¥­¦æ¤Æ¥[³t­pºâ·§½×¥~¡A¦P®É±N®i¥Ü®×¨ÒÀ³¥Î»PÀu¤Æ³B²z¤èªk»P§Þ¥©¡A³z¹L³v¨B¤Þ¾É¨Ï¾Ç­û§ó¯àÅé·| CUDA¥­¦æµ{¦¡ªº³]­p¤§¶ø§®¡C 
�� ´x´¤GPUø¹Ï³B²z¾¹¹B¥Î©ó¥­¦æ­pºâ¤§Ä³ÃD¡A¦³§U©ó¦Û¨­ªº¹Bºâ¥[³t¤u§@¤ÎÀ³¥Î¶}µo¡C
 
 
½Òµ{¹ï¶H
 
¹ï¥­¦æ­pºâ¡BGPU¡BCUDA¡B¤H¤u´¼¼zµ¥µ{¦¡³]­p·P¿³½ìªÌ
¥­¦æ­pºâ³nÅé¶}µo¤uµ{®v
¹q¤l/¹q¾÷/¸ê°T¬ÛÃö¤uµ{®v
¤j¼Æ¾Ú¬ÛÃö¬ãµo¤H­û©Î¸ê®Æ¬ì¾Ç®a¡B²Î­p/¼Æ­È¤ÀªR¬ã¨s¤H­û
±q¨Æ¥­¦æ­pºâ¡B¤H¤u´¼¼zµ¥¬ãµo¡BÀ³¥Î¤§¤uµ{®v

¥ý³Æª¾ÃÑ: °ò¦µ{¦¡»y¨¥©Î°ò¦¬ì¾Ç­pºâ§Þ¯à

 
Á¿®v²¤¶

Á驯ªå / ¤u¬ã°|¤uµ{®v ( NVIDIA DLI»{ÃÒÁ¿®v)
¡i¾Ç¾ú¡j 
�� °ê¥ß¥æ³q¤j¾Ç¸ê°T¤uµ{¬ã¨s©Ò³Õ¤h¯Z¦b¾Ç
�� °ê¥ß¥æ³q¤j¾Ç¥Íª«¸ê°T¬ã¨s©ÒºÓ¤h
¡i¸g¾ú¡j
�� ¤u¬ã°|¾÷±ñ©Ò¡AÆp¬ã©ó´¼¼z«¬¦Û°Ê¥ú¾ÇÀË´ú¨t²Î¬ãµoµ¥
�� NVIDIA ²`«×¾Ç²ß¾÷ºc(DLI) »{ÃÒÁ¿®v: Computer Vision, CUDA
�� ¾á¥ô­pºâ¾÷·§½×¡B¤H¤u´¼¼z¡B¼Æ¦ì¹CÀ¸¾Ç²ßµ¥½Òµ{§U±Ð
¡i±M·~»â°ì¡j
�� ¾÷¾¹¾Ç²ß¡B¼v¹³³B²z¡B¾÷¾¹µøı·å²«ÀË´ú¡B¥­¦æ¹Bºâ


¶À·®þà³Õ¤h / ¤u¬ã°|¤uµ{®v 
¡i¾Ç¾ú¡j 
�� °ê¥ß²MµØ¤j¾Ç¥Íª«¸ê°T»Pµ²ºc¥Íª«³Õ¤h
�� °ê¥ß¤¤¥¿¤j¾Ç¶W¤j«¬¿nÅé¹q¸ôºÓ¤h
¡i¸g¾ú¡j
�� ²Ä¤T¥N¯«¸gºô¸ô(Spiking Neural Network)¬ãµo
�� ªGÃǤj¸£ºô¸ô¼ÒÀÀ¾¹¶}µoªÌ
�� «ü¯¾´¹¤ù,°ª³t¶q´ú´¹¤ù¬ãµo
�� ¤u·~±±¨î,¹q¯àÂà´«¨t²Î¬ãµo
¡i±M·~»â°ì¡j
�� ¥­¦æ¹Bºâ¡B¼Æ¦ì¹q¸ô³]­p¡B¤u·~±±¨î¡B¥Íª«¯«¸gºô¸ô¬ãµo

 
½Òµ{¤jºõ 

²Ä¤@¤Ñ¡GGPU»P¥­¦æ¥[³t¹Bºâ
1.GPU ¹Bºâ­ì²z¤Î CUDA ¥­¦æ¹Bºâ°ò¥»ª¾ÃÑ
2.GPUÀô¹Ò¨Ï¥Î²¤¶
3.CUDA°ò¥»µ{¦¡½s¼g


²Ä¤G¤Ñ¡GCUDA C/C++ ¥­¦æ¥[³t¹Bºâ¹ê§@
1.®Ä¯àµû¦ô¤Î³Ì¨Î¤Æ
2.¥ÑVector Add ¦Ü Neural Network - ±`¨£ªºGPU¥[³t¹Bºâ­Ó®×¬ã¨s
3.¹ê¥ÎªºCUDA ¬ÛÃö Libraries ¤¶²Ð

¸Ô²Ó½Ð¤U¸üªþ¥ó½Òµ{DM


 
»ù®æ 

½Òµ{¶O¥Î (§tµ|¡BÁ¿¸q¡B¤ÈÀ\¡BÂI¤ß): 
¨C¤H$9,800¤¸¡C¶}½Ò«e¤T¶g³ø¦W¡]¦­³¾»ù¡^¡G¨C¤H$9,300¤¸¡C
¹Î³ø(¦P¤½¥q¤G¤H¥H¤W)¡A¨C¤H$9,300¤¸¡A¹Î³ø¦­³¾»ù: ¨C¤H$8,800¤¸¡C

 
±`¨£°ÝÃD 

¥»½Òµ{¨ã¹ê§@©Ê½è¡A½Ð¾Ç­û¦Û±aµ§¹q¡A°ò¥»¤W¡A¹ê§@«Y¸g¥ÑÂsÄý¾¹¦s¨úGoogle ¶³ºÝGPU¦øªA¾¹¡A¬Gµ§¹q¥u­n¦w¸Ë¤@¯ëªºÂsÄý¾¹§Y¥i¹B¦æ¡A¦pChrome¡C

 


ªþ¥ó

GPU»PCUDA¥[³t¹Bºâªº­ì²z»P¹ê§@-20200901-1.pdf


²¤¶


²£·~¾Ç°|½t°_
¡@¡@¨Ì¾Ú¦æ¬F°|¡u¬D¾Ô2008¡G°ê®aµo®i­«ÂI­pµe¡v¤U¤§¡u°ê»Ú³Ð·s¬ãµo°ò¦a¡v»P¡u²£·~°ª­È¤Æ¡v¨â­pµe¡A­º­«²£·~¬ì§Þ¤H¤~ªº®Ä¯à¡C

¡E911216¸g¬ì¦r²Ä09103373120¸¹¨ç¡G¸gÀÙ³¡±N¥»°|Äw³]¤u¬ã°|²£·~¾Ç°|¤§¤u§@¡A¦C¬°¦]À³²£·~µ²ºcÂ૬¡A´£ ... more

*½Ð°È¥²±N¤U¦C¸ê®Æ¶ñ§´¡A¸ê®Æ°e¥X«á¡A¶}½Ò³æ¦ì±N·|¥D°Ê»P±zÁpô¡C

§Ú·Qª¾¹D¥»½Òµ{ªº¥ø·~¥]¯Z¤º°V     


(­«·s²£¥Í)