é¢æ± GPGPU åå¼·ä¼ã«è¡ã£ã¦ãã¾ãã
å æ¥ã®ãã¨ã§ãã
åå è 層ãåã¯ããããããªãã£ãã®ã§ãå¤åå ¥éã¨ãã½ãããªæãã®åå¼·ä¼ãªãã ãããªã¨æã£ã¦ TL æµãã¦ããç¬éã«åå ãã¿ã³ãæ¼ããã®ã§ãããçºè¡¨ã¿ã¤ãã«ã ãè¦ã¦é常ã«ãã¼ããªãã¨ãæãã¾ãããå®éçºè¡¨è´ãã¦ã¦ãªããªããã¼ãã§ããã
å ¨é¨æ¸ãã¨é·ãã®ã§å¹¾ã¤ãã
GPGPU DE ããããªåé¡ã解ãã¦ã¿ãããã
NVIDIA 㨠AMD ã® GPU ã§åãããã«åé¡ã解ããã¦ã¿ã話ãOpenCL ã§ã
OpenCL ã¯ä½¿ã£ããã¨ç¡ãã®ã§ãªãã¨ãããã¾ãããããªãã AMD ã®æ¹ã¯ã«ã¼ãã«ãèµ·åããé度ããã¾ãéããªããããï¼ï¼ï¼ã®ã§ã«ã¼ãã«ãè¨ç®ä¸ã«ä½åº¦ãèµ·åãããããªã³ã¼ãã¯é ããªãããããã¨ãããããªçµè«ã ã£ãã¨æãã¾ãã
ãªãã GPGPU ãããªã CUDA ã¿ãããªé¢¨æ½®ãå¼·ãæããããã®ã¯ããããã¨ããã«ãããã®ããç¥ããªããªãã¨ãåæã«æã£ã¦ã¾ããã
LLVM meets GPU
CUDA5 ã®ãã¬ãã¥ã¼çã«ãã CUDA Compiler SDK ãã LLVM IR ãµãã»ããã§ãã NVVM IR ã使ã£ã¦ä»»æã®è¨èªï¼ä»åã¯Pythonï¼ã§ CUDA ãåããã¦ã¿ãã¨ããå 容ã
å æ¥ CUDA5 ã®ãã¬ãã¥ã¼çããã¦ã³ãã¼ãã§ããããã«ããã®ã§ææ¥ããã試ããã¨æãã®ã§ãããCUDA5 ããé常ã«å¤¢ãåºããä½ããæãããã¦å¬ããçºè¡¨ã§ããã
NVIDIA GPUã®ã¡ã¢ãªã¢ãã«ã¨ä»²è¯ããªã
CUDA ã®ã¡ã¢ãªã¢ãã«ã¯çµæ§ç¹æ®ã§ãç¨éã«åãããªãã¨ããã©ã¼ãã³ã¹ãåºãªãã¨ããæ²ããç¾å®ãããã¾ãããã®è¾ºã®è²ã ããã¡ã¢ãªã®ç¨®é¡ã解説ãã話ã
GK110 ã®ãã¯ã¤ããã¼ãã¼æ¢ã«åºã¦ãããã¨ãããã§åãã£ãã®ã§ãæ©éãã¦ã³ãã¼ããã¾ããããHyper-Q ã¨ã Dynamic Parallelism ã¨ããKepler ã®ç®çæ©è½ã¨ã㯠GK110 ãããªãã¨ãµãã¼ããã¦ãªãã®ã§ãå®è³ªç㪠Kepler ä¸ä»£ã¢ã¼ã¯ãã¯ãã£ã¯ GK110 ããã¿ãããªæãã«ãªãã®ã§ã¯ãªãã§ãããããCompute Capability 㯠3.5 ãããã§ããã©ãã
æ親ä¼
å½æ¥ã«ãªã£ã¦æ親ä¼ã®åå¨ãææ¡ããã®ã§ãåå ãããããªãã¨ãããã¨ã§åå ã
ã¾ãããã®äººã¨ããä¼ç¤¾ã®äººã¨ãå¤ãã¦å¦ç身åã§ãã¯ãã¯ãã¦ã¾ããã
è²ã 横ã«å± ãå 輩ã¨ãã¨ãªãã C++11 ã®è©±ããã¦ãã¾ãããããã®å¾ã¯ @fadis_ ãã @ponkotuy ãã㨠perl ã®ãããªãã®ã¨ããCUDA ã¨ããããåãããªãéå¤ãªè©±ã¨ãã§çãä¸ããã¾ããã
æ親ä¼ã§ä¸çªé©ããã®ã¯ã主å¬ã® @telmin_orca ãããããééã®äººã§ããï¼ï¼ãã£ã¦è¨ããããã¨ã§ãããããã風ã«ç¥ããã¦ããããããã®ãã
ã¾ããã¦ãã次ã®ééãã¤ã§ããï¼ï¼ãã¨è¨ããã¾ãããããã¤ããããæ©ã¿ã¾ããã
ä½è«
ééããã°ã©ãã³ã°åå¼·ä¼ã®ãã¨ãããããã¸ãã¢ã¹ãªããã°ã©ãã³ã°åå¼·ä¼ãã¨å¼ã¶ã¨ãã£ãããè¦ãã¾ããã