CUDA ãšã¯ïŒ
- NVIDIAã2006幎ã«ãªãªãŒã¹ããGPUåã䞊åããã°ã©ãã³ã°åºç€
- CUDAã³ã¢ãšåŒã°ããæ°ååã®å°ããªæŒç®ãŠãããã§å€§éã®èšç®ãåæåŠç
- cuDNNãªã©ã®ã©ã€ãã©ãªããã£ãŒãã©ãŒãã³ã°ã®è¡åæŒç®ãæé©å
- PyTorchãTensorFlowã®è£åŽã§CUDAãåããŠãããGPUåŠç¿ã®äºå®äžã®æšæº
CUDAã£ãŠãªã«ïŒGPUãšã¯éãã®ïŒ
GPUã¯ããŒããŠã§ã¢ã§ãCUDAã¯ãã®GPUã«ãããèšç®ããŠïŒãã£ãŠæç€ºãåºãããã®ãœãããŠã§ã¢åºç€ã ããGPUãè»ã®ãšã³ãžã³ãªããCUDAã¯ãšã³ãžã³ãåããããã®çæãšå¶åŸ¡ã·ã¹ãã ã¿ãããªãã®ã ã
ãã£ãŒãã©ãŒãã³ã°ã£ãŠå€§éã®è¡åèšç®ã®å¡ãªãã ãCPUã¯ãäžã€ã®è€éãªèšç®ãé«éã«ãããã®ãåŸæã ãã©ãGPUã¯ãã·ã³ãã«ãªèšç®ãæ°åååæã«ãããã®ãåŸæãCUDAã³ã¢ãäœååããããããè¡åæŒç®ãäžæ°ã«äžŠååŠçã§ãããã ã
cuDNNã£ãŠã®ãèããããšãããã©ãCUDAãšã©ãéãã®ïŒ
CUDAãæ±çšã®äžŠåèšç®åºç€ã§ãcuDNNã¯ãã®äžã«ä¹ã£ãããã£ãŒãã©ãŒãã³ã°å°çšã®æé©åã©ã€ãã©ãªã ããç³ã¿èŸŒã¿ãšãããŒãªã³ã°ãšãããã¥ãŒã©ã«ãããã§ãã䜿ãåŠçãNVIDIAã培åºçã«ãã¥ãŒãã³ã°ããŠãããŠããã
PyTorchãšã䜿ã£ãŠããšæèããªããã©ãè£ã§CUDAåããŠãã®ïŒ
ããããã`.cuda()`ãšã`device='cuda'`ã£ãŠæžãã ãã§è£åŽã§CUDAãå šéšãã£ãŠãããããã ããããã©ã³ã§ãæå€ãšç¥ããªãã®ããCUDAããŒãžã§ã³ãšãã©ã€ãã®äºææ§åé¡ããªãã
äºææ§åé¡ïŒ
CUDAããŒã«ããããNVIDIAãã©ã€ããPyTorchã®ãã«ãããŒãžã§ã³ããã®3ã€ã®çµã¿åãããåããªããšåããªããã ãããããCUDAã®ãã€ããŒããŒãžã§ã³éãã§ãåããªãããšããããç°å¢æ§ç¯ã§ãGPUèªèããªãïŒãã£ãŠãããåå ã®å€§åãããã ããããšCUDAã®ã¡ã¢ãªç®¡çã¯CPUãšã¯å¥ãªã®ã§ã`torch.cuda.empty_cache()`ãç¥ããªããšOOMïŒã¡ã¢ãªäžè¶³ïŒã§æ³£ãããšã«ãªãã