-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

CUDA ½sµ{¡G°ò¦»P¹ê½î

( ²Åé ¦r)
§@ªÌ¡G¼Ô­õ«iÃþ§O¡G1. -> µ{¦¡³]­p -> ºî¦X
ĶªÌ¡G
¥Xª©ªÀ¡G²MµØ¤j¾Ç¥Xª©ªÀCUDA ½sµ{¡G°ò¦»P¹ê½î 3dWoo®Ñ¸¹¡G 53746
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¦³®w¦s¡j
NT°â»ù¡G 345 ¤¸

¥Xª©¤é¡G10/1/2020
­¶¼Æ¡G183
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787302564607
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

°ò¤_CPU¡]central processing unit¡A¤¤¥¡³B²z¾¹¡^©MGPU¡]graphics processing unit¡A¹Ï§Î³B²z¾¹¡^ªº²§ºc­pºâ¡]heterogeneous computing¡^¤w³v¨Bµo®i¬°°ª©Ê¯à­pºâ¡]high performance computing¡^»â°ìªº¥D¬y¼Ò¦¡¡C«Ü¦h¶W¯Å­pºâ¾÷¤j¶q¨Ï¥Î¤FGPU¡CCUDA¡]compute unified device architecture¡^§@¬°GPU°ª©Ê¯à­pºâªº¥D­n¶}µo¤u¨ã¤§¤@¡A¤w¸g¦b­pºâ¾÷¡Bª«²z¡B¤Æ¾Ç¡B¥Íª«¡B§÷®Æµ¥²³¦h»â°ìµo´§¤F­«­n§@¥Î¡C´x´¤CUDA½sµ{¤]´N·N¨ýµÛ¶}¹@¤F¤@±ø³q©¹°ª©Ê¯à­pºâªº·s¹D¸ô¡C
¥»®Ñ³q¹L¤j¶q¹ê¨Ò´`§Çº¥¶i¦a¤¶²ÐCUDA½sµ{ªº»yªkª¾ÃÑ¡BÀu¤Æµ¦²¤¤Îµ{§Ç¶}µo¹ê½î¡C¥»®Ñ©Ò¦³·½¥N½X³£¥i¥H³q¹L§@ªÌ¬°¥»®Ñ³Ð«ØªºGitHub­Ü®w¡]https:// github.com/brucefan1983/CUDA-Programming¡^Àò±o¡CŪªÌ¤]¥i¥H°w¹ï¸Ó­Ü®w´£¥X°ÝÃD¡]issues¡^»P§@ªÌ¶i¦æ¥æ¬y¡C´ñ®ü¤j¾Ç¥ÑµX¦P¾ÇªºGitHub­Ü®whttps://github.com/ YouQixiaowu/CUDA-Programming-with-PythonÁÙµ¹¥X¤F¥»®Ñ³¡¤Àµ{§Çªºpy-CUDAª©¥»¡C¥»®Ñ¤¤ªº©Ò¦³µ{§Ç³£¦bLinux¥­»O³q¹L´ú¸Õ¡A¨ä¤¤¤j³¡¤Àµ{§Ç¤]¯à¦bWindows¥­»O³q¹L´ú¸Õ¡C§Ú­Ì·|¦b¾A·íªº¦a¤è«ü¥X­þ¨Çµ{§ÇµLªk¦b¡]§@ªÌªº¡^Windows¥­»O³q¹L´ú¸Õ¡C
¥»®Ñ¬O¤@¥»¸û²z·Qªº¾Ç²ßCUDA½sµ{ªº¤JªùŪª«¡C¦b­pºâ¾÷¤è­±¡AŪªÌ»Ý­n´x´¤ªì¨BªºLinux©ÎWindows©R¥O¦æ¾Þ§@§Þ¯à¡A¦}¨ã¦³¤@©wªºC++»y¨¥½sµ{°ò¦¡C²Ä13³¹ªº¤º®e­n¨DŪªÌ¨ã¦³¤j¾Çª«²z©Î´¶³qª«²zªºª¾ÃÑ°ò¦¡C²Ä14³¹ªº³¡¤À¤º®e­n¨DŪªÌ¼ô±x¤j¾Ç¥»¬ì²z¤u¬ìªº½u©Ê¥N¼Æª¾ÃÑ¡C¥»®Ñ«e12³¹»Ý¶¶§Ç¾\Ū¡A¦Z¨â³¹¥i¿ïŪ¡A¦Ó¥B¥i¥H«ö¥ô·N¦¸§Ç¾\Ū¡C³Ì¦Z­n±j½Õªº¬O¡A¥»®Ñ¤£°²©wŪªÌ¦³¦}¦æ½sµ{ªº¸gÅç¡C
¥»®Ñ¤£¬O¤@¥»CUDA½sµ{¤â¥U¡A¤£°l¨D­±­±­Ñ¨ì¡A¦ý¤O¨D°µ¨ì¥Ñ²L¤J²`¡B´`§Çº¥¶i¡CºI¦Ü§@ªÌ¥æ½Z¤§¤é¡A³Ì·sª©¥»¡]10.2¡^ªº¡mCUDA C++ Programming Guide¡n©M¡mCUDA C++ Best Practices Guide¡n¥[°_¨Ó¦³400¦h­¶¡A¦A¥[¤WCUDA¤u¨ã½c¤¤¦UºØÀ³¥Îµ{§Ç®w©M½sµ{¶}µo¤u¨ãªº¤åÀÉ¡AÁ`­¶¼Æ¥i¯à¤W¸U¡C¦b¥»®Ñ100¦h­¶ªº½g´T¤¤·Q­n°µ¨ì­±­±­Ñ¨ì¬O¤£¥i¯àªº¡C©ú½T¦a»¡¡G
¡´ ¥»®Ñ¥u¯A¤ÎCUDA C++½sµ{¡A¤£¯A¤Î¨ä¥L²§ºc½sµ{»y¨¥¡A¦pOpenCL¡BOpenACC©MCUDA Fortran¡C
¡´ Ãö¤_CUDA C++½sµ{¡A¥»®Ñ¤£¯A¤Î°ÊºA¦}¦æ¡]dynamic parallelism¡^¡BCUDA Graph¡BCUDA»POpenGL©MDirect3Dªº¥æ¤¬¡B¯¾²z©Mªí­±¤º¦sªº¨Ï¥Î¡C
¡´ ¥»®Ñ¤£¯A¤Î¦hGPU½sµ{¡A¥u°Q½×³æGPU½sµ{¡A¦}¥B¤£¯A¤ÎOpenMP©MMPI¡C
¡´ ¦b²³¦h©Ê¯à¤ÀªR¾¹¡]profiler¡^¤¤¡A§Ú­Ì±N¶È°¸º¸¨Ï¥Învprof¡A¤£¨Ï¥Î¨ä¥L¥iµø¤Æ©Ê¯à¤ÀªR¾¹¡C
¥»®Ñ±m¹Ï½Ð±½´y¥k°¼¤Gºû½XÆ[¬Ý¡C
¥»®Ñªº¥Xª©¨ü¨ì°ê®a¦ÛµM¬ì¾Ç°òª÷ªº¤ä«ù¡A¶µ¥Ø½s¸¹¬°11974059¡A¦WºÙ¬°¡m°ò¤_¥Û¾¥²m¤Î¨ä¥L¨âºû§÷®Æªº¬X©Ê¼ö¹q§÷®Æªº¦h¤Ø«×¼ÒÀÀ¡n¡C¥»®Ñ¤¤¬ÛÃöµ{§Çªº¶}µo©M´ú¸Õ¨Ï¥Î¤F¥ÑAalto Science-IT project©MFinland¡¦s IT Center for Science¡]CSC¡^´£¨Ñªº­pºâ¸ê·½»P§Þ³N¤ä«ù¡C
´_¥¹¤j¾Çªº©PÅï²»±Ð±Â¤_2011¦~¦b·Hªù¤j¾Ç¶}³]ªºCUDA½sµ{Á¿®yÅý§@ªÌ¦³©¯¸û¦­¦a±µÄ²CUDA½sµ{¡C·Hªù¤j¾Çªº³Õ¤h¦Z¾É®v¾Gª÷¦¨©M¤ý´fã±Ð±Â¤ÎªâÄõAalto¤j¾Çªº³Õ¤h¦Z¾É®vAri Harju³Õ¤h©MTapio Ala-Nissila±Ð±Â¦b§@ªÌ¾Ç²ß»P¨Ï¥ÎCUDAªº¹Lµ{¤¤µ¹¤©¤F«Ü¤jªº¤ä«ù¡C¦b¦¹¹ï¥H¤W¦Ñ®vªí¥Ü¥Ñ°Jªº·PÁ¡I
¯S§O·PÁÂĬ¦{¦N®ú°T¬ì§Þ¦³­­¤½¥qªº§Þ³N¹Î¶¤¡C¸Ó¹Î¶¤ªº¤uµ{®v­Ì¬°¥»®Ñªºªì½Z«ü¥X¤F300¦h­Ó°ÝÃD¡A¦}¬°§@ªÌ¸Ñµª¤F«Ü¦h¦³ÃöCUDA½sµ{ªº°ÝÃD¡C¦pªG¨S¦³¸Ó¹Î¶¤ªºÀ°§U¡A¥»®Ñ¤@©w¦³«Ü¦h¿ù»~¡C·Hªù¤j¾Çªº®}§J¦P¾Ç©M´ñ®ü¤j¾Çªº¥ÑµX¦P¾Ç¥ý¦Z¬°¥»®Ñ¨î§@¤F­Y¤z´¡¹Ï¡C¤¤°ê¬ì¾Ç§Þ³N¤j¾Çªº¶Àµ¾¦P¾Ç¡BÀå§{¾Ç°|°ª©Ê¯à­pºâ¤¤¤ßªº§õ©µÀs¦P¾Ç¤Î¦è¦w²z¤u¤j¾Çªº­S¨ÈªF¦P¾ÇÀ°§U¼f¾\¤F¥þ³¡®Ñ½Z¡C¦b¦¹¹ï¥H¤W¦P¾Ç¤@¦}ªí¥Ü·PÁ¡C
¥»®Ñ±qºc«ä¨ì§¹¦¨¤j·§ªá¤F¤@¦~¥bªº®É¶¡¡C¦b³o¤@¦~¥bªº®É¶¡¨½¡A¦¹®Ñªº¼g§@¥e¥Î¤F§Ú«Ü¦h¥»À³¸Ó³­¦ñ®a¤Hªº®É¶¡¡C©Ò¥H¡A§Ú±N¦¹®ÑÄmµ¹§Úªº©d¤l¯³®üÁø¡B¤j¤k¨à¼ÔÃh½@©M¤p¤k¨à¼Ô°û·ì¡A¥H¤Î§Úªº¤÷¿Ë¼Ô©úÀç»P¥À¿Ë±i¬ÃÆA¡C
¤º®e²¤¶¡G

¥»®Ñ¬O¤@¥»²z·Qªº¾Ç²ß CUDA ½sµ{ªº¤Jªù®ÑÄy¡C¥»®Ñ¤À¨â³¡¤À¡A²Ä¤@³¡¤À¡]«e¤Q³¹¡^´`§Çº¥¶i¦a¤¶²Ð CUDA ½sµ{ªº°ò¦¡A²Ä¤G³¡¤À¡]¦Z¤­³¹¡^³q¹L¤@­Ó¨ãÅ骺­pºâª«²zÀ³¥Î¹ê¨Ò¡X¡X¤À¤l°Ê¤O¾Ç¼ÒÀÀ¡X¡X¨Ó¤¶²Ð¦p¦ó±qÀY¶}µo¤@­Ó¤j«¬ªº¡B°ª®Äªº CUDA µ{§Ç¡C
¥Ø¿ý¡G

²Ä1³¹GPUµw¥ó»PCUDAµ{§Ç¶}µo¤u¨ã 1
¡@¡@1.1GPUµw¥ó²¤¶ 1
¡@¡@1.2CUDAµ{§Ç¶}µo¤u¨ã 4
¡@¡@1.3CUDA¶}µoÀô¹Ò·f«Ø¥Ü¨Ò 6
¡@¡@1.4¥Învidia-smiÀˬd»P³]¸m³]³Æ 7
¡@¡@1.5¨ä¥L¾Ç²ß¸ê®Æ 8
²Ä2³¹CUDA¤¤ªº½uµ{²Õ´ 10
¡@¡@2.1C++»y¨¥¤¤ªºHelloWorldµ{§Ç 10
¡@¡@2.2CUDA¤¤ªºHelloWorldµ{§Ç 11
¡@¡@¡@¡@2.2.1¥u¦³¥D¾÷¨ç¼ÆªºCUDAµ{§Ç 11
¡@¡@¡@¡@2.2.2¨Ï¥Î®Ö¨ç¼ÆªºCUDAµ{§Ç 12
¡@¡@2.3CUDA¤¤ªº½uµ{²Õ´ 14
¡@¡@¡@¡@2.3.1¨Ï¥Î¦h­Ó½uµ{ªº®Ö¨ç¼Æ 14
¡@¡@¡@¡@2.3.2¨Ï¥Î½uµ{¯Á¤Þ 15
¡@¡@¡@¡@2.3.3±À¼s¦Ü¦hºûºô®æ 17
¡@¡@¡@¡@2.3.4ºô®æ»P½uµ{¶ô¤j¤pªº­­¨î 21
¡@¡@2.4CUDA¤¤ªºÀY¤å¥ó 21
¡@¡@2.5¥Învcc½sĶCUDAµ{§Ç 22
²Ä3³¹Â²³æCUDAµ{§Çªº°ò¥»®Ø¬[ 25
¡@¡@3.1¨Ò¤l¡G¼Æ²Õ¬Û¥[ 25
¡@¡@3.2CUDAµ{§Çªº°ò¥»®Ø¬[ 27
¡@¡@¡@¡@3.2.1Áô§Îªº³]³Æªì©l¤Æ 29
¡@¡@¡@¡@3.2.2³]³Æ¤º¦sªº¤À°t»PÄÀ©ñ 29
¡@¡@¡@¡@3.2.3¥D¾÷»P³]³Æ¤§¶¡¼Æ¾Úªº¶Ç»¼ 31
¡@¡@¡@¡@3.2.4®Ö¨ç¼Æ¤¤¼Æ¾Ú»P½uµ{ªº¹ïÀ³ 32
¡@¡@¡@¡@3.2.5®Ö¨ç¼Æªº­n¨D 33
¡@¡@¡@¡@3.2.6®Ö¨ç¼Æ¤¤if»y¥yªº¥²­n©Ê 34
¡@¡@3.3¦Û©w¸q³]³Æ¨ç¼Æ 35
¡@¡@¡@¡@3.3.1¨ç¼Æ°õ¦æªÅ¶¡¼ÐÃѲŠ35
¡@¡@¡@¡@3.3.2¨Ò¤l¡G¬°¼Æ²Õ¬Û¥[ªº®Ö¨ç¼Æ©w¸q¤@­Ó³]³Æ¨ç¼Æ 36
²Ä4³¹CUDAµ{§Çªº¿ù»~ÀË´ú 38
¡@¡@4.1¤@­ÓÀË´úCUDA¹B¦æ®É¿ù»~ªº§»¨ç¼Æ 38
¡@¡@¡@¡@4.1.1Àˬd¹B¦æ®ÉAPI¨ç¼Æ 40
¡@¡@¡@¡@4.1.2Àˬd®Ö¨ç¼Æ 42
¡@¡@4.2¥ÎCUDA-MEMCHECKÀˬd¤º¦s¿ù»~ 44
²Ä5³¹Àò±oGPU¥[³tªºÃöÁä 46
¡@¡@5.1¥ÎCUDA¨Æ¥ó­p®É 46
¡@¡@¡@¡@5.1.1¬°C++µ{§Ç­p®É 47
¡@¡@¡@¡@5.1.2¬°CUDAµ{§Ç­p®É 48
¡@¡@5.2´X­Ó¼vÅTGPU¥[³tªºÃöÁä¦]¯À 50
¡@¡@¡@¡@5.2.1¼Æ¾Ú¶Ç¿éªº¤ñ¨Ò 50
¡@¡@¡@¡@5.2.2ºâ³N±j«× 51
¡@¡@¡@¡@5.2.3¦}¦æ³W¼Ò 54
¡@¡@¡@¡@5.2.4Á`µ² 55
¡@¡@5.3CUDA¤¤ªº¼Æ¾Ç¨ç¼Æ®w 55
²Ä6³¹CUDAªº¤º¦s²Õ´ 57
¡@¡@6.1CUDAªº¤º¦s²Õ´²¤¶ 57
¡@¡@6.2CUDA¤¤¤£¦PÃþ«¬ªº¤º¦s 58
¡@¡@¡@¡@6.2.1¥þ§½¤º¦s 58
¡@¡@¡@¡@6.2.2±`¶q¤º¦s 61
¡@¡@¡@¡@6.2.3¯¾²z¤º¦s©Mªí­±¤º¦s 62
¡@¡@¡@¡@6.2.4±H¦s¾¹ 62
¡@¡@¡@¡@6.2.5§½³¡¤º¦s 63
¡@¡@¡@¡@6.2.6¦@¨É¤º¦s 63
¡@¡@¡@¡@6.2.7L1©ML2½w¦s 64
¡@¡@6.3SM¤Î¨ä¥e¦³²v 65
¡@¡@¡@¡@6.3.1SMªººc¦¨ 65
¡@¡@¡@¡@6.3.2SMªº¥e¦³²v 65
¡@¡@6.4¥ÎCUDA¹B¦æ®ÉAPI¨ç¼Æ¬d¸ß³]³Æ 67
²Ä7³¹¥þ§½¤º¦sªº¦X²z¨Ï¥Î 70
¡@¡@7.1¥þ§½¤º¦sªº¦X¦}»P«D¦X¦}³X°Ý 70
¡@¡@7.2¨Ò¤l¡G¯x°}Âà¸m 73
¡@¡@¡@¡@7.2.1¯x°}´_¨î 73
¡@¡@¡@¡@7.2.2¨Ï¥Î¥þ§½¤º¦s¶i¦æ¯x°}Âà¸m 75
²Ä8³¹¦@¨É¤º¦sªº¦X²z¨Ï¥Î 78
¡@¡@8.1¨Ò¤l¡G¼Æ²ÕÂk¬ù­pºâ 78
¡@¡@¡@¡@8.1.1¶È¨Ï¥Î¥þ§½¤º¦s 79
¡@¡@¡@¡@8.1.2¨Ï¥Î¦@¨É¤º¦s 82
¡@¡@¡@¡@8.1.3¨Ï¥Î°ÊºA¦@¨É¤º¦s 84
¡@¡@8.2¨Ï¥Î¦@¨É¤º¦s¶i¦æ¯x°}Âà¸m 85
¡@¡@8.3ÁקK¦@¨É¤º¦sªºbank¨R¬ð 86
²Ä9³¹­ì¤l¨ç¼Æªº¦X²z¨Ï¥Î 90
¡@¡@9.1§¹¥þ¦bGPU¤¤¶i¦æÂk¬ù 90
¡@¡@9.2­ì¤l¨ç¼Æ 93
¡@¡@9.3¨Ò¤l¡G¾F©~¦Cªíªº«Ø¥ß 95
¡@¡@¡@¡@9.3.1C++ª©¥»ªº¶}µo 96
¡@¡@¡@¡@9.3.2§Q¥Î­ì¤l¾Þ§@ªºCUDAª©¥» 98
¡@¡@¡@¡@9.3.3¤£¥Î­ì¤l¾Þ§@ªºCUDAª©¥» 101
²Ä10³¹½uµ{§ô°ò¥»¨ç¼Æ»P¨ó§@²Õ 104
¡@¡@10.1³æ«ü¥O-¦h½uµ{°õ¦æ¼Ò¦¡ 104
¡@¡@10.2½uµ{§ô¤ºªº½uµ{¦P¨B¨ç¼Æ 106
¡@¡@10.3§ó¦h½uµ{§ô¤ºªº°ò¥»¨ç¼Æ 109
¡@¡@¡@¡@10.3.1¤¶²Ð 109
¡@¡@¡@¡@10.3.2§Q¥Î½uµ{§ô¬~µP¨ç¼Æ¶i¦æÂk¬ù­pºâ 114
¡@¡@10.4¨ó§@²Õ 116
¡@¡@¡@¡@10.4.1½uµ{¶ô¯Å§Oªº¨ó§@²Õ 116
¡@¡@¡@¡@10.4.2§Q¥Î¨ó§@²Õ¶i¦æÂk¬ù­pºâ 118
¡@¡@10.5¼Æ²ÕÂk¬ùµ{§Çªº¶i¤@¨BÀu¤Æ 119
¡@¡@¡@¡@10.5.1´£°ª½uµ{§Q¥Î²v 119
¡@¡@¡@¡@10.5.2ÁקK¤Ï´_¤À°t»PÄÀ©ñ³]³Æ¤º¦s 122
²Ä11³¹CUDA¬y 124
¡@¡@11.1CUDA¬y·§­z 124
¡@¡@11.2¦bÀq»{¬y¤¤­«Å|¥D¾÷©M³]³Æ­pºâ 125
¡@¡@11.3¥Î«DÀq»{CUDA¬y­«Å|¦h­Ó®Ö¨ç¼Æªº°õ¦æ 128
¡@¡@¡@¡@11.3.1®Ö¨ç¼Æ°õ¦æ°t¸m¤¤ªº¬y°Ñ¼Æ 128
¡@¡@¡@¡@11.3.2­«Å|¦h­Ó®Ö¨ç¼Æªº¨Ò¤l 129
¡@¡@11.4¥Î«DÀq»{CUDA¬y­«Å|®Ö¨ç¼Æªº°õ¦æ»P¼Æ¾Ú¶Ç»¼ 131
¡@¡@¡@¡@11.4.1¤£¥i¤À­¶¥D¾÷¤º¦s»P²§¨Bªº¼Æ¾Ú¶Ç¿é¨ç¼Æ 131
¡@¡@¡@¡@11.4.2­«Å|®Ö¨ç¼Æ°õ¦æ»P¼Æ¾Ú¶Ç¿éªº¨Ò¤l 133
²Ä12³¹¨Ï¥Î²Î¤@¤º¦s½sµ{ 136
¡@¡@12.1²Î¤@¤º¦s²¤¶ 136
¡@¡@¡@¡@12.1.1²Î¤@¤º¦sªº°ò¥»·§©À 136
¡@¡@¡@¡@12.1.2¨Ï¥Î²Î¤@¤º¦s¹ïµw¥óªº­n¨D 137
¡@¡@¡@¡@12.1.3²Î¤@¤º¦s½sµ{ªºÀu¶Õ 137
¡@¡@12.2²Î¤@¤º¦sªº°ò¥»¨Ï¥Î¤èªk 137
¡@¡@¡@¡@12.2.1°ÊºA²Î¤@¤º¦s 138
¡@¡@¡@¡@12.2.2ÀRºA²Î¤@¤º¦s 139
¡@¡@12.3¨Ï¥Î²Î¤@¤º¦s¥Ó½Ð¶W¶qªº¤º¦s 140
¡@¡@¡@¡@12.3.1²Ä¤@­Ó´ú¸Õ 140
¡@¡@¡@¡@12.3.2²Ä¤G­Ó´ú¸Õ 142
¡@¡@¡@¡@12.3.3²Ä¤T­Ó´ú¸Õ 143
¡@¡@¡@¡@12.4Àu¤Æ¨Ï¥Î²Î¤@¤º¦sªºµ{§Ç 144
²Ä13³¹¤À¤l°Ê¤O¾Ç¼ÒÀÀªºCUDAµ{§Ç¶}µo 147
¡@¡@13.1¤À¤l°Ê¤O¾Ç¼ÒÀÀªº°ò¥»ºâªk©MC++¹ê²{ 147
¡@¡@¡@¡@13.1.1µ{§Çªº¾ãÅéµ²ºc 147
¡@¡@¡@¡@13.1.2¤À¤l°Ê¤O¾Ç¼ÒÀÀªº°ò¥»¬yµ{ 148
¡@¡@¡@¡@13.1.3ªì©l±ø¥ó 149
¡@¡@¡@¡@13.1.4Ãä¬É±ø¥ó 150
¡@¡@¡@¡@13.1.5¬Û¤¬§@¥Î 152
¡@¡@¡@¡@13.1.6¹B°Ê¤èµ{ªº¼Æ­È¿n¤À 156
¡@¡@¡@¡@13.1.7µ{§Ç¤¤¨Ï¥Îªº³æ¦ì¨î 157
¡@¡@¡@¡@13.1.8µ{§Çªº½sĶ»P¹B¦æ 158
¡@¡@¡@¡@13.1.9¯à¶q¦uùÚªº´ú¸Õ 159
¡@¡@¡@¡@13.1.10C++ª©¥»µ{§Ç¹B¦æ³t«×ªº´ú¸Õ 160
¡@¡@13.2CUDAª©¥»ªº¤À¤l°Ê¤O¾Ç¼ÒÀÀµ{§Ç¶}µo 161
¡@¡@¡@¡@13.2.1¶È¥[³t¨D¤O©M¯à¶qªº³¡¤À 161
¡@¡@¡@¡@13.2.2¥[³t¥þ³¡­pºâ 165
²Ä14³¹CUDA¼Ð·Ç®wªº¨Ï¥Î 167
¡@¡@14.1CUDA¼Ð·Ç®w²¤¶ 167
¡@¡@14.2Thrust®w 168
¡@¡@¡@¡@14.2.1²¤¶ 168
¡@¡@¡@¡@14.2.2¼Æ¾Úµ²ºc 168
¡@¡@¡@¡@14.2.3ºâªk 168
¡@¡@¡@¡@14.2.4¨Ò¤l¡G«eºó©M 169
¡@¡@14.3cuBLAS®w 171
¡@¡@¡@¡@14.3.1²¤¶ 171
¡@¡@¡@¡@14.3.2¨Ò¤l¡G¯x°}­¼ªk 172
¡@¡@14.4cuSolver®w 176
¡@¡@¡@¡@14.4.1²¤¶ 176
¡@¡@¡@¡@14.4.2¨Ò¤l¡G¯x°}¥»©º­È 177
¡@¡@14.5cuRAND®w 181
¡@¡@¡@¡@14.5.1²¤¶ 181
¡@¡@¡@¡@14.5.2¨Ò¤l 182
§Ç¡G