2023-11-01ãã1ã¶æéã®è¨äºä¸è¦§
ç°¡åãªãã¯ãã«å½ä»¤ã®ãã³ããã¼ã¯ãä½ã£ã¦ãåããã¦ã¿ããã¨æãã ä½ã£ãã®ã¯AXPYã§ãåç´ã«2ã¤ã®ãã¯ãã«è¦ç´ ããã¼ããã¦è¶³ãç®ãã¦ããã¯ãã«ã¹ãã¢ããã ãã ã ä¸å¿ãã³ããã¼ã¯èªä½ã¯æ£ããåãããã«ãªã£ãã®ã ããæã£ãã»ã©æ§è½ãåºã¦ããªãã®ã§â¦
X(æ§Twitter)ã§èª¿æ»ãã¦ä¹ã£ã¦ãããCXXRTLã¨ãããã¼ã«ã«ã¤ãã¦èª¿æ»ããã ããã¯Yosysã«ä»å±ãã¦ããããã¯ã¨ã³ããã¼ã«ã§ãRTLããC++ãçæãããã¼ã«ãããã ã¤ã¾ãã¨ãããVerilatorã¨åããããªæ©è½ãæã£ã¦ããããVerilatorã¨éã£ã¦å ¥åãã¡ã¤ã«ã¯â¦
ç°¡åãªãã¯ãã«å½ä»¤ã®ãã³ããã¼ã¯ãä½ã£ã¦ãåããã¦ã¿ããã¨æãã ä½ã£ãã®ã¯AXPYã§ãåç´ã«2ã¤ã®ãã¯ãã«è¦ç´ ããã¼ããã¦è¶³ãç®ãã¦ããã¯ãã«ã¹ãã¢ããã ãã ã // vvadd function void vvadd( int n, int a[], int b[], int c[] ) { int i; for ( i â¦
ãã¯ãã«ã¹ãã¢å½ä»¤ã®ææ©çå®è¡ã«ã¤ãã¦èããã é常ãææ©çå®è¡ãè¡ãã¨ãã¹ãã¢å½ä»¤ã¯ã¢ãã¬ã¹ã¨ãã¼ã¿ãä¿æãã¦ãã®å½ä»¤ãã³ãããç¶æ (ä¾å¤ãªã©ã§ç ´æ£ãããªã)ã«ãªãã¾ã§å¾ ã¡åãããã³ãããç¶æ ã«ãªã£ãæç¹ã§ãã£ãã·ã¥ã«æ¸ãæ»ãã ããããã¯â¦
ã¡ãã£ã¨å¤ãè«æã ãã"Decoupled Vector Architectures"ã¨ããè«æãèªãã§ããã https://ieeexplore.ieee.org/document/501193 msyksphinz.hatenablog.com 次ã«æ§è½ã«ã¤ãã¦ãDecoupled Vector Architectureã¨ããªãã¡ã¬ã³ã¹ã»ã¢ã¼ããã¯ãã£ã®æ§è½ãæ¯â¦
vsetvliå½ä»¤ãææ©çã«å®è¡ããå ´åãèããã ããã©ã«ãç¶æ ï¼ - head_ptr : ç¾å¨ã®vlvtypeã¬ã¸ã¹ã¿ããææ©çã«ã©ãã¾ã§ã¨ã³ããªã確ä¿ãã¦ããããæå³ãããããã©ã«ãå¤ã¯0ã - tail_ptr : ç¾å¨ã®vlvtypeã¬ã¸ã¹ã¿ã®ææ©å®è¡ããã©ãã¾ã§ã³ãããããã¦â¦
ãªãã¨ãªãSynopsysãçºè¡¨ããRISC-Vã³ã¢ã®ã©ã¤ã³ããããçºãã¦ããã®ã ããçµæ§éè£ åãªã³ã¢ãç¨æããã¦ãã¦ã³ã£ãããããã¨ãã話ã www.synopsys.com ARC-V RMX Seriesï¼çµã¿è¾¼ã¿åã32ãããã»ãã¼ãã¯ã¼ã»ããã»ããµ 3~5ã¹ãã¼ã¸ãã¤ãã©ã¤ã³ ä½æ¶è²»â¦
ãã¯ãã«å½ä»¤ã«ããããLMUL>1ã®å¯¾å¿ã¨ããã®ã¯çµæ§é£æ度ã®é«ãåé¡ã ã ä»åã¯ãã®è§£æ±ºæ¹æ³ã¨ãã¦ãLMULã®å¤ãVSETVLå½ä»¤ã§å¤æ´ãããã¨ãä¾å¤ãåºãã¦ç©çã¬ã¸ã¹ã¿ã®æ§æãæ´åãç´ãæ¹å¼ãèãããã ããã§ã¯ãSpikeã®å®è£ ã®ã¿ã示ãããåæ§ã«ãã¼ãã¦â¦
ãã¯ãã«å½ä»¤ã«ããããLMUL>1ã®å¯¾å¿ã¨ããã®ã¯çµæ§é£æ度ã®é«ãåé¡ã ã ä»åã¯ãã®è§£æ±ºæ¹æ³ã¨ãã¦ãLMULã®å¤ãVSETVLå½ä»¤ã§å¤æ´ãããã¨ãä¾å¤ãåºãã¦ç©çã¬ã¸ã¹ã¿ã®æ§æãæ´åãç´ãæ¹å¼ãèãããã ããã§ã¯ãSpikeã®å®è£ ã®ã¿ã示ãããåæ§ã«ãã¼ãã¦â¦
IMP: Indirect Memory Prefetcherã¨ããè«æããããããã¯Gather/Scatterã«å¯¾ãã¦ã©ã®ããã«ããªãã§ãããåºããã¨ãããã®ãææ¡ããè«æã«ãªã£ã¦ãããã¡ãã£ã¨èªãã§ã¾ã¨ãã¦ã¿ããã¨æãã https://ieeexplore.ieee.org/document/7856597 ååã¯ããªãâ¦
ã¡ãã£ã¨å¤ãè«æã ãã"Decoupled Vector Architectures"ã¨ããè«æãèªãã§ããã https://ieeexplore.ieee.org/document/501193 ãã¯ãã«å½ä»¤ã¨ããã®ã¯ãã¡ã¢ãªã®å£ãä¹ãè¶ããããã®ææ³ã¨ãã¦èæ¡ãããå½ä»¤ã»ããã§ãããã¡ã¢ãªãããã¯CPUã«å¯¾ãã¦1â¦
ãã¯ãã«å½ä»¤ã«ãããããã¹ã¯å½ä»¤ãã©ã®ããã«å®è¡ããã®ãã«ã¤ãã¦èãããã ãã¯ãã«å½ä»¤ã«ã¯ãã¹ã¯å½ä»¤ã¨ãããåè¦ç´ ã®æ¯è¼ãå®è¡ãã¦ãã®çµæããã¹ã¯ã¨ãã¦ãã¯ãã«ã¬ã¸ã¹ã¿ã«æ ¼ç´ããå½ä»¤ãããã ãã¯ãã«ã¬ã¸ã¹ã¿ã«ã¯ããã¹ã¯ãã©ã¼ãããã¨ããâ¦
IMP: Indirect Memory Prefetcherã¨ããè«æããããããã¯Gather/Scatterã«å¯¾ãã¦ã©ã®ããã«ããªãã§ãããåºããã¨ãããã®ãææ¡ããè«æã«ãªã£ã¦ãããã¡ãã£ã¨èªãã§ã¾ã¨ãã¦ã¿ããã¨æãã https://ieeexplore.ieee.org/document/7856597 ååã®ç¶ããâ¦
IMP: Indirect Memory Prefetcherã¨ããè«æããããããã¯Gather/Scatterã«å¯¾ãã¦ã©ã®ããã«ããªãã§ãããåºããã¨ãããã®ãææ¡ããè«æã«ãªã£ã¦ãããã¡ãã£ã¨èªãã§ã¾ã¨ãã¦ã¿ããã¨æãã https://ieeexplore.ieee.org/document/7856597 åé¡ã®ã¢ããâ¦
ã¡ãã£ã¨æ°ã«ãªã£ã¦ãããã¨ã§ã¯ããã®ã ããã¢ã¦ããªããªã¼ãå®è¡ã§ã¯ã¡ã¢ãªã¢ã¯ã»ã¹ã®ãªã¯ã¨ã¹ããã¢ã¦ããªããªã¼ãã«ãªããã¹ãã©ã¤ãæ¤åºå¨ã«ãã£ã¦æ£ããã¹ãã©ã¤ãå¤ãæ¤åºã§ããªããã¨ãããã LSUã®ãã¤ãã©ã¤ã³ã3æ¬ãããããªå ´åãã¡ã¢ãªã¢ã¯ã»ã¹â¦
ã¡ãã£ã¨å¤ãè«æã ãã"Decoupled Vector Architectures"ã¨ããè«æãèªãã§ããã https://ieeexplore.ieee.org/document/501193 ãã®è«æã¯ããã¯ãã«ããã»ããµã«ããããã«ãããªã³ã°æè¡ã®ä½¿ç¨ãããã¯ãã«ããã°ã©ã ã®æ§è½ãå¤§å¹ ã«åä¸ããããã¨ã示â¦
èªä½CPUã«ãã¯ãã«å½ä»¤ã追å ããå®è£ æ¤è¨ (18. ãã¯ãã«ã¹ãã¢å½ä»¤ã®å®è£ )
ããããèªä½CPUã«ãã¯ãã«ã»ã¡ã¢ãªã»ã¢ã¯ã»ã¹å½ä»¤ãå®è£ ããã¨ããæ¥ããã¾ãã¯ç°¡åãªUnit Strideãã¼ãå½ä»¤ãå®è£ ãããã¨æãã ä½ãèããã«ãCacheableãªé åã«ã¹ãã¬ã¼ãã«ã¢ã¯ã»ã¹ããå½¢å¼ããèãã¦ããããã ãã¯ãã«ã»ã¹ãã¢å½ä»¤ã®å®è£ ãæ¤è¨ãã¦â¦
T-Headãææ¡ãã¦ããRISC-Vã®Matrix Extensionã«ã¤ãã¦ãããã¥ã¢ã«ãèªã¿ãªããç解ãã¦ãããã¨æãã ã¨ããããããã¥ã¢ã«ã§ãã©ã®ãããªã¬ã¸ã¹ã¿ãåå¨ãã¦ããã®ããç解ãã¦ãããããã°ã©ãã³ã°ã¢ãã«ã¨ãµã³ãã«ã³ã¼ããèªã¿é²ãã¦ããããã githuâ¦
T-Headãææ¡ãã¦ããRISC-Vã®Matrix Extensionã«ã¤ãã¦ãããã¥ã¢ã«ãèªã¿ãªããç解ãã¦ãããã¨æãã ã¨ããããããã¥ã¢ã«ã§ãã©ã®ãããªã¬ã¸ã¹ã¿ãåå¨ãã¦ããã®ããç解ãã¦ãããããã°ã©ãã³ã°ã¢ãã«ã¨ãµã³ãã«ã³ã¼ããèªã¿é²ãã¦ããããã githuâ¦
èªä½CPUã«ãã¯ãã«å½ä»¤ã追å ããå®è£ æ¤è¨ (17. ãã¯ãã«ãã¼ãå½ä»¤ã®å®è£ )
ããããèªä½CPUã«ãã¯ãã«ã»ã¡ã¢ãªã»ã¢ã¯ã»ã¹å½ä»¤ãå®è£ ããã¨ããæ¥ããã¾ãã¯ç°¡åãªUnit Strideãã¼ãå½ä»¤ãå®è£ ãããã¨æãã ä½ãèããã«ãCacheableãªé åã«ã¹ãã¬ã¼ãã«ã¢ã¯ã»ã¹ããå½¢å¼ããèãã¦ããããã ã¨ãããããããã°ãã¦ãç°¡åãªãã¹ãâ¦
ããããèªä½CPUã«ãã¯ãã«ã»ã¡ã¢ãªã»ã¢ã¯ã»ã¹å½ä»¤ãå®è£ ããã¨ããæ¥ããã¾ãã¯ç°¡åãªUnit Strideãã¼ãå½ä»¤ãå®è£ ãããã¨æãã ä½ãèããã«ãCacheableãªé åã«ã¹ãã¬ã¼ãã«ã¢ã¯ã»ã¹ããå½¢å¼ããèãã¦ããããã 話ãç°¡åã«ããããã«ããã¤ãã®ã¢ã¦ãâ¦
T-Headãææ¡ãã¦ããRISC-Vã®Matrix Extensionã«ã¤ãã¦ãããã¥ã¢ã«ãèªã¿ãªããç解ãã¦ãããã¨æãã ã¨ããããããã¥ã¢ã«ã§ãã©ã®ãããªã¬ã¸ã¹ã¿ãåå¨ãã¦ããã®ããç解ãã¦ãããããã°ã©ãã³ã°ã¢ãã«ã¨ãµã³ãã«ã³ã¼ããèªã¿é²ãã¦ããããã githuâ¦
T-Headãææ¡ãã¦ããRISC-Vã®Matrix Extensionã«ã¤ãã¦ãããã¥ã¢ã«ãèªã¿ãªããç解ãã¦ãããã¨æãã ã¨ããããããã¥ã¢ã«ã§ãã©ã®ãããªã¬ã¸ã¹ã¿ãåå¨ãã¦ããã®ããç解ãã¦ãããããã°ã©ãã³ã°ã¢ãã«ã¨ãµã³ãã«ã³ã¼ããèªã¿é²ãã¦ããããã githuâ¦
ã¢ã¦ããªããªã¼ãå®è¡ããã¯ãã«å½ä»¤ã§ãµãã¼ãããã¨ãLMUL>1ã®æã®ã¬ã¸ã¹ã¿èªã¿åºããæ¸ãè¾¼ã¿æä½ãåé¡ã¨ãªããè«ççã«èããã°ãLMUL>1ã§ãã£ãã¨ãã¦ããè¤æ°ã®ãã¯ãã«ã»ã¬ã¸ã¹ã¿ã1ã¤ã®ãã¯ãã«ã»ã¬ã¸ã¹ã¿ã¨èãã¦èªã¿æ¸ããããã°åé¡ãªãã¯ãã â¦
T-Headãææ¡ãã¦ããRISC-Vã®Matrix Extensionã«ã¤ãã¦ãããã¥ã¢ã«ãèªã¿ãªããç解ãã¦ãããã¨æãã ã¨ããããããã¥ã¢ã«ã§ãã©ã®ãããªã¬ã¸ã¹ã¿ãåå¨ãã¦ããã®ããç解ãã¦ãããããã°ã©ãã³ã°ã¢ãã«ã¨ãµã³ãã«ã³ã¼ããèªã¿é²ãã¦ããããã githuâ¦
ç¾å¨èªä½CPUã§ã¯FPUã®æ¼ç®å¨ã¨ãã¦IPã®cvfpu(FPNew)ã使ç¨ãã¦ãããããã¯ããªãã¾ã¨ãã«ä½¿ããæ¼ç®å¨IPã ã¨æãã®ã§ãç¾å¨ãµãã¼ããããã¨ãã¦ãããã¯ãã«å½ä»¤ã®FPUæ¼ç®å½ä»¤ãFPNewã使ã£ã¦ãµãã¼ããã¦ããããã 次ã¯æµ®åå°æ°ç¹ã®æ¯è¼å½ä»¤ã®å®è£ ã ãæ¯â¦
ChampSimã®æ§ç¯ã¡ã¢ï¼ãã¬ã¼ã¹ãã¡ã¤ã«ã®æ§æã«ã¤ãã¦èª¿æ»ããã $ ./bin/champsim --help WARNING: physical memory size is smaller than virtual memory size. A microarchitecture simulator for research and education Usage: ./bin/champsim [OPTIONSâ¦
ãã¼ã¿ã»ããªãã§ããã®ææ³ã§ããBingoã®è«æãèªãã§ããã®ã§ãæ¦è¦ãã¾ã¨ããã https://ieeexplore.ieee.org/document/8675188 github.com è©ä¾¡ è©ä¾¡ã«ã¯Champsimã¨ãã°ããã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ã使ç¨ãã¦ãããããã¯Data Prefetching Championshipã§â¦
ç¾å¨èªä½CPUã§ã¯FPUã®æ¼ç®å¨ã¨ãã¦IPã®cvfpu(FPNew)ã使ç¨ãã¦ãããããã¯ããªãã¾ã¨ãã«ä½¿ããæ¼ç®å¨IPã ã¨æãã®ã§ãç¾å¨ãµãã¼ããããã¨ãã¦ãããã¯ãã«å½ä»¤ã®FPUæ¼ç®å½ä»¤ãFPNewã使ã£ã¦ãµãã¼ããã¦ããããã ã¨ããããç°¡åãªFMAå½ä»¤ã¯åãããã«â¦
ãã¼ã¿ã»ããªãã§ããã®ææ³ã§ããBingoã®è«æãèªãã§ããã®ã§ãæ¦è¦ãã¾ã¨ããã https://ieeexplore.ieee.org/document/8675188 github.com PPHã®ã¤ãã³ãã®è©±ã«æ»ããå³2ã¯ãæ§ã ãªç¨®é¡ã®ã¤ãã³ãã¨ããã®æã®ããã確çã示ãããã®ã§ããã å³ã¯æ¬è«æâ¦