±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÍøÂ磬ÎÄÕÂÖ÷Òª½éÉÜÁËCUDAÕâÖÖ¸ßЧµÄÒì¹¹¼ÆËãÆ½Ì¨£¬²¢ÇÒ¸ÅÀ¨ÁË¿ÉÄÜ»áÓöµ½µÄÎÊÌâºÍʹÓõ½µÄ¹¤¾ß¡£ |
|
Òì¹¹¼ÆËã
Òì¹¹¼ÆË㣬Ê×ÏȱØÐëÁ˽âʲôÊÇÒì¹¹£¬²»Í¬µÄ¼ÆËã»ú¼Ü¹¹¾ÍÊÇÒì¹¹£¬ÉÏÎÄÊéÎÒÃǽ²¹ý¼ÆËã»ú¼Ü¹¹ÁË£¬¾ÍÊÇΪÁËÒý³öÒì¹¹µÄ¸ÅÄ°´ÕÕÖ¸Á»®·Ö»òÕß°´ÕÕÄÚ´æ½á¹¹»®·Ö£¬µ«ÊÇÎÒ¾õµÃÖ»ÒªÁ½Æ¬CPUÐͺŲ»Ò»Ñù¾ÍÓ¦¸Ã½ÐÒì¹¹£¨Õâ¸öÏë·¨Ïȱ£Áô£¬¶Ô´í²»È·¶¨£©¡£
GPU±¾À´µÄÈÎÎñÊÇ×öͼÐÎͼÏñµÄ£¬Ò²¾ÍÊǰÑÊý¾Ý´¦Àí³ÉͼÐÎͼÏñ£¬Í¼ÏñÓиöÌØµã¾ÍÊDz¢ÐжȺܸߣ¬»ù±¾ÉÏÒ»¶¨¾àÀëÒâÍâµÄÏñËØµãÖ®¼äµÄ¼ÆËãÊǶÀÁ¢µÄ£¬ËùÒÔÊôÓÚ²¢ÐÐÈÎÎñ¡£
GPU֮ǰÊDz»¿É±à³ÌµÄ£¬»òÕß˵²»¶ÔÓû§¿ª·ÅµÄ£¬È˼ұ¾À´ÊÇ×öͼÐμÆËã¿ØÖÆÏÔʾÆ÷µÄ£¬ËäÈ»¶ÔÓû§²»¿É±à³Ì£¬µ«ÊÇÄãÖ»Òª°ÑÓ²¼þÂô¸øÁËÎÒ£¬¾ÍÓɲ»µÃÄãÁË£¬È»ºó¾ÍÓÐhacker¿ªÊ¼Ïë°ì·¨¸øGPU±à³Ì£¬À´°ïÖúËûÃÇÍê³É¹æÄ£½Ï´óµÄÔËË㣬ÓÚÊÇËûÃÇÑо¿×ÅÉ«ÓïÑÔ»òÕßͼÐδ¦ÀíÔÓïÀ´ºÍGPU¶Ô»°¡£ºóÀ´»ÆÀϰ巢ÏÖÁËÕâ¸öÊǸöÐµĹ¦Äܰ¡£¬È»ºó¾ÍÈÃÈË¿ª·¢ÁËÒ»Ìׯ½Ì¨£¬CUDA£¬È»ºóÉî¶Èѧϰ»ðÁË£¬Ë³´ø×Å£¬CUDAÒ²»ðµ½±¬Õ¨¡£
¸Õ¸Õ×îÐÂÏûÏ¢£¬Ó¢Î°´ïа汾GPU¼Ü¹¹»á±»ÃüÃûΪTuring£¬Ò»Ë¿ÐÀ·¢×ÔÄÚÐÄÉî´¦µØ¾´ÄÇЩΪÊÀ½ç½ø²½×ö³öÁ˽ܳö¹±Ï×µÄÈËÃÇ£¬ËûÃÇÊÇÈËÀàδÀ´µÄÏ£Íû¡£

x86 CPU+GPUµÄÕâÖÖÒì¹¹Ó¦¸ÃÊÇ×î³£¼ûµÄ£¬Ò²ÓÐCPU+FPGA£¬CPU+DSPµÈ¸÷ÖÖ¸÷ÑùµÄ×éºÏ£¬CPU+GPUÔÚÿ¸ö±Ê¼Ç±¾»òÕß̨ʽ»úÉ϶¼ÄÜÕÒµ½¡£µ±È»³¬¼¶¼ÆËã»ú´ó²¿·ÖÒ²²ÉÓÃÒì¹¹¼ÆËãµÄ·½Ê½À´Ìá¸ßÍÌÍÂÁ¿¡£
Òì¹¹¼Ü¹¹ËäÈ»±È´«Í³µÄͬ¹¹¼Ü¹¹ÔËËãÁ¿¸ü´ó£¬µ«ÊÇÆäÓ¦Óø´ÔӶȸü¸ß£¬ÒòΪҪÔÚÁ½¸öÉ豸ÉϽøÐмÆË㣬¿ØÖÆ£¬´«Ê䣬ÕâЩ¶¼ÐèÒªÈËΪ¸ÉÔ¤£¬¶øÍ¬¹¹µÄ¼Ü¹¹Ï£¬Ó²¼þ²¿·Ö×Ô¼ºÍê³É¿ØÖÆ£¬²»ÐèÒªÈËΪÉè¼Æ¡£
Òì¹¹¼Ü¹¹
¾ÙÒ»¸öÎÒÓõŤ×÷Õ¾µÄ¹¹³É£¬ÎÒʹÓõÄÊÇһ̨ intel i7-4790 CPU¼ÓÉÏÁ½Ì¨Titan x
GPU¹¹³ÉµÄ¹¤×÷Õ¾£¬GPU²åÔÚÖ÷°åµÄPCIe¿¨¿ÚÉÏ£¬ÔËÐгÌÐòµÄʱºò£¬CPUÏñÊÇÒ»¸ö¿ØÖÆÕߣ¬Ö¸»ÓÁ½Ì¨TitanÍê³É¹¤×÷ºó½øÐлã×Ü£¬ºÍÏÂÒ»²½¹¤×÷°²ÅÅ£¬ËùÒÔCPUÎÒÃÇ¿ÉÒÔ°ÑËü¿´×öÒ»¸öÖ¸»ÓÕߣ¬Ö÷»ú¶Ë£¬host£¬¶øÍê³É´óÁ¿¼ÆËãµÄGPUÊÇÎÒÃǵļÆËãÉ豸£¬device¡£

ÉÏÃæÕâÕÅͼÄÜ´óÖ·´Ó¦CPUºÍGPUµÄ¼Ü¹¹²»Í¬¡£
×óͼ£ºÒ»¸öËĺËCPUÒ»°ãÓÐËĸöALU£¬ALUÊÇÍê³ÉÂß¼¼ÆËãµÄºËÐÄ£¬Ò²ÊÇÎÒÃÇÆ½Ê±ËµËĺ˰˺˵ĺˣ¬¿ØÖƵ¥Ôª£¬»º´æÒ²ÔÚÆ¬ÉÏ£¬DRAMÊÇÄڴ棬һ°ã²»ÔÚÆ¬ÉÏ£¬CPUͨ¹ý×ÜÏß·ÃÎÊÄÚ´æ¡£
ÓÒͼ£ºGPU£¬ÂÌɫС·½¿éÊÇALU£¬ÎÒÃÇ×¢ÒâºìÉ«¿òÄڵIJ¿·ÖSM£¬ÕâÒ»×éALU¹«ÓÃÒ»¸öControlµ¥ÔªºÍCache£¬Õâ¸ö²¿·ÖÏ൱ÓÚÒ»¸öÍêÕûµÄ¶àºËCPU£¬µ«ÊDz»Í¬µÄÊÇALU¶àÁË£¬control²¿·Ö±äС£¬¿É¼û¼ÆËãÄÜÁ¦ÌáÉýÁË£¬¿ØÖÆÄÜÁ¦¼õÈõÁË£¬ËùÒÔ¶ÔÓÚ¿ØÖÆ£¨Âß¼£©¸´ÔӵijÌÐò£¬Ò»¸öGPUµÄSMÊÇû°ì·¨ºÍCPU±È½ÏµÄ£¬µ«ÊǶÔÁËÂß¼¼òµ¥£¬Êý¾ÝÁ¿´óµÄÈÎÎñ£¬GPU¸ü¸ãЦ£¬²¢ÇÒ£¬×¢Ò⣬һ¸öGPUÓкöà¸öSM£¬¶øÇÒÔ½À´Ô½¶à¡£
CPUºÍGPUÖ®¼äͨ¹ýPCIe×ÜÏßÁ¬½Ó£¬ÓÃÓÚ´«µÝÖ¸ÁîºÍÊý¾Ý£¬Õⲿ·ÖÒ²ÊǺóÃæÒªÌÖÂÛµÄÐÔÄÜÆ¿¾±Ö®Ò»¡£
Ò»¸öÒì¹¹Ó¦Óðüº¬Á½ÖÖÒÔÉϼܹ¹£¬ËùÒÔ´úÂëÒ²°üÀ¨²»Ö¹Ò»²¿·Ö£º
Ö÷»ú´úÂë
É豸´úÂë
Ö÷»ú´úÂëÔÚÖ÷»ú¶ËÔËÐУ¬±»±àÒë³ÉÖ÷»ú¼Ü¹¹µÄ»úÆ÷Â룬É豸¶ËµÄÔÚÉ豸ÉÏÖ´ÐУ¬±»±àÒë³ÉÉ豸¼Ü¹¹µÄ»úÆ÷Â룬ËùÒÔÖ÷»ú¶ËµÄ»úÆ÷ÂëºÍÉ豸¶ËµÄ»úÆ÷ÂëÊǸôÀëµÄ£¬×Ô¼ºÖ´ÐÐ×Ô¼ºµÄ£¬Ã»°ì·¨½»»»Ö´ÐС£
Ö÷»ú¶Ë´úÂëÖ÷ÒªÊÇ¿ØÖÆÉ豸£¬Íê³ÉÊý¾Ý´«ÊäµÈ¿ØÖÆÀ๤×÷£¬É豸¶ËÖ÷ÒªµÄÈÎÎñ¾ÍÊǼÆËã¡£
ÒòΪµ±Ã»ÓÐGPUµÄʱºòCPUÒ²ÄÜÍê³ÉÕâЩ¼ÆË㣬ֻÊÇËÙ¶È»áÂýºÜ¶à£¬ËùÒÔ¿ÉÒÔ°ÑGPU¿´³ÉCPUµÄÒ»¸ö¼ÓËÙÉ豸¡£
NVIDIAĿǰµÄ¼ÆËãÆ½Ì¨£¨²»ÊǼܹ¹£©ÓУº
Tegra
Geforce
Quadro
Tesla
ÿ¸öƽ̫Õë¶Ô²»Í¬µÄÓ¦Óó¡¾°£¬±ÈÈçTegraÓÃÓÚǶÈëʽ£¬GeforceÊÇÎÒÃÇÆ½Ê±´òÓÎÏ·Óõ½£¬TeslaÊÇÎÒÃÇ×òÌì×âµÄÄÇ̨ÌÚÑ¶ÔÆµÄ£¬Ö÷ÒªÓÃÓÚ¼ÆËã¡£
ÉÏÃæÊǸù¾ÝÓ¦Óó¡¾°·ÖÀàµÄ¼¸ÖÖÆ½Ì¨¡£
ºâÁ¿GPU¼ÆËãÄÜÁ¦µÄÖ÷Òª¿¿ÏÂÃæÁ½ÖÖÈÝÁ¿ÌØÕ÷£º
CUDAºËÐÄÊýÁ¿£¨Ô½¶àÔ½ºÃ£©
ÄÚ´æ´óС£¨Ô½´óÔ½ºÃ£©
ÏàÓ¦µÄÒ²ÓмÆËãÄÜÁ¦µÄÐÔÄÜÖ¸±ê:
·åÖµ¼ÆËãÄÜÁ¦
ÄÚ´æ´ø¿í
nvidia×Ô¼ºÓÐÒ»Ì×ÃèÊöGPU¼ÆËãÄÜÁ¦µÄ´úÂ룬ÆäÃû×Ö¾ÍÊÇ¡°¼ÆËãÄÜÁ¦¡±£¬Ö÷񻂿·Ö²»Í¬µÄ¼Ü¹¹£¬ÔçÆä¼Ü¹¹µÄ¼ÆËãÄÜÁ¦²»Ò»¶¨±Èмܹ¹µÄ¼ÆËãÄÜÁ¦Ç¿

ÕâÀïµÄTesla¼Ü¹¹£¬ÓëÉÏÃæµÄTeslaƽ̨²»Í¬£¬²»Òª»ìÏý£¬Ò»¸öÊÇÆ½Ì¨Ãû×Ö£¬Ò»¸öÊǼܹ¹Ãû×Ö
·¶Àý
CPUºÍGPUÏ໥ÅäºÏ£¬¸÷ÓÐËù³¤£¬¸÷ÓÐËù¶Ì£¬²»ÄÜ˵GPU¾ÍÊDZÈCPUÇ¿ÕâÖÖÓ×Öɵϰ£º

µÍ²¢ÐÐÂß¼¸´ÔӵijÌÐòÊʺÏÓÃCPU
¸ß²¢ÐÐÂß¼¼òµ¥µÄ´óÊý¾Ý¼ÆËãÊʺÏGPU
Ò»¸ö³ÌÐò¿ÉÒÔ½øÐÐÈçÏ·ֽ⣬´®Ðв¿·ÖºÍ²¢Ðв»·Ö£º

CPUºÍGPUÏ̵߳ÄÇø±ð£º
CPUÏß³ÌÊÇÖØÁ¿¼¶ÊµÌ壬²Ù×÷ϵͳ½»ÌæÖ´ÐÐỊ̈߳¬Ïß³ÌÉÏÏÂÎÄÇл»»¨ÏúºÜ´ó
GPUÏß³ÌÊÇÇáÁ¿¼¶µÄ£¬GPUÓ¦ÓÃÒ»°ã°üº¬³ÉǧÉÏÍòµÄỊ̈߳¬¶àÊýÔÚÅŶÓ״̬£¬Ïß³ÌÖ®¼äÇл»»ù±¾Ã»ÓпªÏú¡£
CPUµÄºË±»Éè¼ÆÓÃÀ´¾¡¿ÉÄܼõÉÙÒ»¸ö»òÁ½¸öÏß³ÌÔËÐÐʱ¼äµÄÑÓ³Ù£¬¶øGPUºËÔòÊÇ´óÁ¿Ị̈߳¬×î´ó·ù¶ÈÌá¸ßÍÌÍÂÁ¿
CUDA£ºÒ»ÖÖÒì¹¹¼ÆËãÆ½Ì¨
CUDAƽ̨²»Êǵ¥µ¥Ö¸Èí¼þ»òÕßÓ²¼þ£¬¶øÊǽ¨Á¢ÔÚNvidia GPUÉϵÄÒ»ÕûÌׯ½Ì¨£¬²¢À©Õ¹³ö¶àÓïÑÔÖ§³Ö

CUDA C ÊDZê×¼ANSI CÓïÑÔµÄÀ©Õ¹£¬À©Õ¹³öһЩÓï·¨ºÍ¹Ø¼ü×ÖÀ´±àдÉ豸¶Ë´úÂ룬¶øÇÒCUDA¿â±¾ÉíÌṩÁË´óÁ¿APIÀ´²Ù×÷É豸Íê³É¼ÆËã¡£
¶ÔÓÚAPIÒ²ÓÐÁ½ÖÖ²»Í¬µÄ²ã´Î£¬Ò»ÖÖÏà¶Ô½»¸ß²ã£¬Ò»ÖÖÏà¶Ôµ×²ã¡£
CUDAÇý¶¯API
CUDAÔËÐÐʱAPI

Çý¶¯APIÊǵͼ¶µÄAPI£¬Ê¹ÓÃÏà¶ÔÀ§ÄÑ£¬ÔËÐÐʱAPIÊǸ߼¶APIʹÓüòµ¥£¬ÆäʵÏÖ»ùÓÚÇý¶¯API¡£
ÕâÁ½ÖÖAPIÊÇ»¥³âµÄ£¬Ò²¾ÍÊÇÄãÖ»ÄÜÓÃÒ»¸ö£¬Á½ÕßÖ®¼äµÄº¯Êý²»¿ÉÒÔ»ìºÏµ÷Óã¬Ö»ÄÜÓÃÆäÖеÄÒ»¸ö¿â¡£
Ò»¸öCUDAÓ¦ÓÃͨ³£¿ÉÒÔ·Ö½âΪÁ½²¿·Ö£¬
CPU Ö÷»ú¶Ë´úÂë
GPU É豸¶Ë´úÂë
CUDA nvcc±àÒëÆ÷»á×Ô¶¯·ÖÀëÄã´úÂëÀïÃæµÄ²»Í¬²¿·Ö£¬ÈçͼÖÐÖ÷»ú´úÂëÓÃCд³É£¬Ê¹Óñ¾µØµÄCÓïÑÔ±àÒëÆ÷±àÒ룬É豸¶Ë´úÂ룬Ҳ¾ÍÊǺ˺¯Êý£¬ÓÃCUDA
C±àд£¬Í¨¹ýnvcc±àÒ룬Á´½Ó½×¶Î£¬ÔÚÄں˳ÌÐòµ÷ÓûòÕßÃ÷ÏÔµÄGPUÉ豸²Ù×÷ʱ£¬Ìí¼ÓÔËÐÐʱ¿â¡£
×¢Ò⣺ºËº¯ÊýÊÇÎÒÃǺóÃæÖ÷Òª½Ó´¥µÄÒ»¶Î´úÂ룬¾ÍÊÇÉ豸ÉÏÖ´ÐеijÌÐò¶Î

nvcc ÊÇ´ÓLLVM¿ªÔ´±àÒëϵͳΪ»ù´¡¿ª·¢µÄ¡£

CUDA¹¤¾ßÏäÌṩ±àÒëÆ÷£¬Êýѧ¿â£¬µ÷ÊÔÓÅ»¯µÈ¹¤¾ß£¬µ±È»CUDAµÄÎĵµÊÇÏ൱ÍêÉÆµÄ£¬¿ÉÒÔÈ¥²éÔÄ£¬µ±È»ÔÚÎÒÃÇ»ù±¾Á˽â»ù´¡½á¹¹µÄÇé¿öÏ£¬Ö±½ÓÉÏÀ´¿´Îĵµ»á±äµÃ»úе»¯¡£

¡°Hello World!¡±
Hello WorldÊÇËùÓгÌÐò³õѧÕß¶¼·Ç³£Ï²»¶µÄ£¬Ö®Ç°GPUÊDz»ÄÜprintfµÄ£¬ÎÒµ±Ê±¾ÍºÜ㣬GPUÊǸö×öÏÔʾµÄÉ豸£¬ÎªÉ¶²»ÄÜÊä³ö£¬ºóÀ´¾Í¿ÉÒÔÖ±½ÓÔÚCUDAºËÀïÃæ´òÓ¡ÐÅÏ¢ÁË£¬ÎÒÃÇдÏÂÃæ³ÌÐò
/*
*hello_world.cu
*/
#include<stdio.h>
__global__ void hello_world(void)
{
printf("GPU: Hello world!\n");
}
int main(int argc,char **argv)
{
printf("CPU: Hello world!\n");
hello_world<<<1,10>>>();
cudaDeviceReset();//if no this line ,it can
not output hello world from gpu
return 0; |
ÍêÕû´úÂë¿ÉÒÔ´ÓÒÔÏÂÏîÄ¿ÖÐclone£º
https://github.com/Tony-Tan/CUDA_Freshman
¼òµ¥½éÉÜÆäÖм¸¸ö¹Ø¼ü×Ö
ÊǸæËß±àÒëÆ÷Õâ¸öÊǸö¿ÉÒÔÔÚÉ豸ÉÏÖ´Ðеĺ˺¯Êý
Õâ¾ä»°CÓïÑÔÖÐûÓС¯<<<>>>¡¯ÊǶÔÉ豸½øÐÐÅäÖõIJÎÊý£¬Ò²ÊÇCUDAÀ©Õ¹³öÀ´µÄ²¿·Ö¡£
Õâ¾ä»°Èç¹ûûÓУ¬Ôò²»ÄÜÕý³£µÄÔËÐУ¬ÒòΪÕâ¾ä»°°üº¬ÁËÒþʽͬ²½£¬GPUºÍCPUÖ´ÐгÌÐòÊÇÒì²½µÄ£¬ºËº¯Êýµ÷Óúó³ÉÁ¢¿Ì»áµ½Ö÷»úÏ̼߳ÌÐø£¬¶ø²»¹ÜGPU¶ËºËº¯ÊýÊÇ·ñÖ´ÐÐÍê±Ï£¬ËùÒÔÉÏÃæµÄ³ÌÐò¾ÍÊÇGPU¸Õ¿ªÊ¼Ö´ÐУ¬CPUÒѾÍ˳ö³ÌÐòÁË£¬ËùÒÔÎÒÃÇÒªµÈGPUÖ´ÐÐÍêÁË£¬ÔÙÍ˳öÖ÷»úÏ̡߳£
Ò»°ãCUDA³ÌÐò·Ö³ÉÏÂÃæÕâЩ²½Ö裺
·ÖÅäGPUÄÚ´æ
¿½±´ÄÚ´æµ½É豸
µ÷ÓÃCUDAÄں˺¯ÊýÀ´Ö´ÐмÆËã
°Ñ¼ÆËãÍê³ÉÊý¾Ý¿½±´»ØÖ÷»ú¶Ë
ÄÚ´æÏú»Ù
ÉÏÃæµÄhello worldÖ»µ½µÚÈý²½£¬Ã»ÓÐÄÚ´æ½»»»¡£
CUDA CÄÑô£¿
CPUÓëGPUµÄ±à³ÌÖ÷񻂿±ðÔÚÓÚ¶ÔGPU¼Ü¹¹µÄÊìϤ³Ì¶È£¬Àí½â»úÆ÷µÄ½á¹¹ÊǶԱà³ÌЧÂÊÓ°Ïì·Ç³£´óµÄÒ»²¿·Ö£¬Á˽âÄãµÄ»úÆ÷£¬²ÅÄÜд³ö¸üÓÅÃÀµÄ´úÂ룬¶øÄ¿Ç°¼ÆËãÉ豸µÄ¼Ü¹¹¾ö¶¨Á˾ֲ¿ÐÔ½«»áÑÏÖØÓ°ÏìЧÂÊ¡£
Êý¾Ý¾Ö²¿ÐÔ·ÖÁ½ÖÖ
¿Õ¼ä¾Ö²¿ÐÔ
ʱ¼ä¾Ö²¿ÐÔ
Õâ¸öÁ½¸öÐÔÖʸæËßÎÒÃÇ£¬µ±Ò»¸öÊý¾Ý±»Ê¹Óã¬Æä¸½½üµÄÊý¾Ý½«»áºÜ¿ì±»Ê¹Ó㬵±Ò»¸öÊý¾Ý¸Õ±»Ê¹Óã¬ÔòËæ×Åʱ¼ä¼ÌÐøÆä±»ÔÙ´ÎʹÓõĿÉÄÜÐÔ½µµÍ£¬Êý¾Ý¿ÉÄܱ»Öظ´Ê¹Óá£
CUDAÖÐÓÐÁ½¸öÄ£ÐÍÊǾö¶¨ÐÔÄܵģº
ÄÚ´æ²ã´Î½á¹¹
Ï̲߳ã´Î½á¹¹
CUDA CдºËº¯ÊýµÄʱºòÎÒÃÇֻдһС¶Î´®ÐдúÂ룬µ«ÊÇÕâ¶Î´úÂë±»³ÉǧÉÏÍòµÄÏß³ÌÖ´ÐУ¬ËùÓÐÏß³ÌÖ´ÐеĴúÂë¶¼ÊÇÏàͬµÄ£¬CUDA±à³ÌÄ£ÐÍÌṩÁËÒ»¸ö²ã´Î»¯µÄ×éÖ¯Ị̈߳¬Ö±½ÓÓ°ÏìGPUÉϵÄÖ´ÐÐ˳Ðò¡£
CUDA³éÏóÁËÓ²¼þʵÏÖ£º
Ïß³Ì×éµÄ²ã´Î½á¹¹
ÄÚ´æµÄ²ã´Î½á¹¹
Õϰͬ²½
ÕâЩ¶¼ÊÇÎÒÃǺóÃæÒªÑо¿µÄ£¬Ị̈߳¬ÄÚ´æÊÇÖ÷ÒªÑо¿µÄ¶ÔÏó£¬ÎÒÃÇÄÜÓõ½µÄ¹¤¾ßÏ൱·á¸»£¬NVIDIAΪÎÒÃÇÌṩÁË£º
Nvidia Nsight¼¯³É¿ª·¢»·¾³
CUDA-GDB ÃüÁîÐе÷ÊÔÆ÷
ÐÔÄÜ·ÖÎö¿ÉÊÓ»¯¹¤¾ß
CUDA-MEMCHECK¹¤¾ß
GPUÉ豸¹ÜÀí¹¤¾ß
×ܽá
±¾ÎÄ´Ó×ÜÌåÉÏ´ÖÂԵĽéÉÜÁËCUDAÕâÖÖ¸ßЧµÄÒì¹¹¼ÆËãÆ½Ì¨£¬²¢ÇÒ¸ÅÀ¨ÁËÎÒÃǵĽ«ÒªÓöµ½µÄ¿àÄѺÍʹÓõ½µÄ¹¤¾ß£¬µ±ÎÒÃÇѧ»áµÄCUDA£¬ÄÇô±àд¸ßЧÒì¹¹¼ÆËã¾Í»áÏñÎÒÃÇд´®ÐгÌÐòÒ»ÑùÁ÷³©¡£
|