2017-07-01ãã1ã¶æéã®è¨äºä¸è¦§
ããã¾ã Vivadoã®ããã¸ã§ã¯ãã®çææ¹æ³ããSDKã®å¦çãªã©ã«ã¤ãã¦tclåããæ¹æ³ã«ã¤ãã¦èª¿æ»ãã¦ããã ãããã試ãã¦ãçµå±ä»¥ä¸ã®Qiitaã®æ¹æ³ã«åãã®ãä¸çªããã¨ããçµè«ã«è³ã£ãã qiita.com ãã®ä¸ã§ãVivadoã®ãããã¯ãã¶ã¤ã³ã¯GUIã§æä½ãããã®â¦
FPGAãã¬ã¸ã³No.18ã¯RISC-Vç¹éãRISC-Vã¥ãããã¨ãããã¨ã§ãæ©éå ¥æãããã¡ãªã¿ã«ãç§ã¯æ¬æã¯ä½ãå¯ç¨¿ãã¦ã¾ããã éèªã®ä¸ã«ããã¦ããHiFive1ãã¼ã2æããã¡1æã¯ç§ã®ã ãå£ãã¦ãã¾ã£ãã æåã¯ä¸æ£®ç« ããã®RISC-Vãã®ãã®ã«ã¤ãã¦ã®è§£èª¬ãä»æ§â¦
ããã10ï½20å¹´åããã¼ã½ãã«ã³ã³ãã¥ã¼ã¿ã¨ããã°æ¥æ¬ã®å¤§æ家é»ã¡ã¼ã«ãããã£ã¦æãåºãã¦ããåéã§ãããã¾ãå½å 家é»é販åºã«ä¸¦ã¹ã¦ããPCã¯ã»ã¨ãã©ãå½ç£ã ã£ãã åç«ããå½å 家é»ã¡ã¼ã«ã¯ç¬èªã®PCãçãã¹ãã³ã§ãªãªã¼ã¹ããå½å ã®ã·ã§ã¢ãç¸å½é«â¦
AXIã¤ã³ã¿ãã§ã¼ã¹ã«å¯¾ãã¦ãRAMãå®è£ ãã¦ããã github.com blockram_test_v1_0_S00_AXI.v // Add user logic here reg [C_S_AXI_DATA_WIDTH-1:0] mem_ram[1024-1: 0]; wire mem_wren, mem_rdenn; assign mem_wren = axi_wready && S_AXI_WVALID ; assign â¦
RISC-Vã®Foundation Memberã®ä¸äººã"Krste Asanovic"ã®ã¤ã³ã¿ãã¥ã¼è¨äºãæ²è¼ããã¦ããã æ®æ®µãã®ãããªç´°ãããã¥ã¼ã¹è¨äºãããã°ã«ãããã¨ã¯ãªãã®ã ããã©ãããã®è¨äºãèªãã°RISC-Vãä½ãçã£ã¦ããã®ãè¯ãåããã®ã§ãèå³ã®ãã人ã¯èªãã§ã»ãâ¦
Vivadoã§çæããIPãæ¥ç¶ãã¦Vivadoããã¸ã§ã¯ãããã«ãããSDã«ã¼ãã«æ¸ãè¾¼ããã¨ã§ãã¼ãã§ããããã«ãªã£ãã ç©çããã¤ã¹ã«ã¢ã¯ã»ã¹ãã¦BlockRAMã¨ãã¦å¶å¾¡ã§ãã¦ããã確èªããã æ¸ãè¾¼ãã å¤ãèªãã¦ãããã¾ãã¢ãã¬ã¹æ¯ã«å¥ã ã«å¤ãèªã¿æ¸ãã§â¦
ZedBoardã®IPãã¶ã¤ã³ã«å¯¾ãã¦ãBlockRAMã®ã¢ã¸ã¥ã¼ã«ãæ¿å ¥ããã BlockRAMã®è¨è¨ AXI4ã®ã¤ã³ã¿ãã§ã¼ã¹ãæã£ãBlockRAMãã¶ã¤ã³ãè¨è¨ãããAXI4ã®ã¤ã³ã¿ãã§ã¼ã¹ã¯ä»ã®ãã¶ã¤ã³ããåã£ã¦ããã github.com blockram_test_v1_0 - blockram_test_v1_0_S00â¦
Xilinxã®IPçæããã³ãã®ã¤ã³ãã°ã¬ã¼ã·ã§ã³ã®æ¹æ³ã£ã¦ããããä¸ã«ãã»ã¨ãã©æ å ±ãåºã¦ããªãã¦ãã¿ããªã©ããã£ã¦ãã£ã¦ããã ã¨ä¸æè°ã«æããªãã調æ»ãã¦ããã®ã ããã©ãã Block Designã使ããªãå ´åã¯ã¿ããªã½ã¼ã¹ãã¡ã¤ã«ãçªã£è¾¼ãã§åæãã¦ãâ¦
HiFive1ã®è©¦è¡ãå¼ãç¶ãè¡ã£ã¦ãããããã¶ããã誰ã大è¦æ¨¡ãªããã°ã©ã æµãããã¨ãªãã®ããªãã¨ããã®ãåãã£ã¦ãã(æ°ããã)ã ä¸æç®ã®ãã¼ããå£ãã¦ãã¾ã£ãã½ãã®ã ãã2æç®ã®ãã¼ããã¡ãã£ã¨å¤§ããã«é åãåã£ã¦ã³ã³ãã¤ã«å¾ãæµãããä¸æ£çµâ¦
åã®è¨äºã®ç¶ããç¡äºã«ThinkPad ã« HiFive1ã®ç°å¢ãæ§ç¯ããã®ã ãããã¯ãSPIçµç±ã§ããã°ã©ã ãæ¸ãè¾¼ããã¨ããã¨æ¸ãè¾¼ããªãã ããããSiFiveã®ãã©ã¼ã©ã ãè¦ãªãã試è¡é¯èª¤ãã¦ããã®ã ããã©ããã¾ã 解決çãè¦ã¤ãããªããããã¯ææªããä¸æHiFiâ¦
HiFive1ã®ãã¼ããå®é¨ããã®ã«ãããã¾ã§ã¯Windowsä¸ã®VirtualBoxã«Ubuntuãã¤ã³ã¹ãã¼ã«ãããã®ä¸ã§ããã¤ã¹ã¨æ¥ç¶ãã¦ããã®ã ããæã 調åãæªããªãã 解æããã®ãé¢åãªã®ã§ã大æã®ãã¼ãPC(ThinkPad X301)ãåãåºãã¦Ubuntuãã¤ã³ã¹ãã¼ã«ããHiFâ¦
Amazonã§èª¿ã¹ã¦ããããã©ããã次ã®ãããã¿ãçºå£²ãããã®ãçºè¦ããã Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)ä½è : John L. Hennessy,David A. Pattersonåºâ¦
Zynqã使ã£ãã«ã¹ã¿ã ãã¶ã¤ã³ã®IPãä½ãããã¦ãIPã®çææ¹æ³ããããã調æ»ãã¦ããã®ã ããã©ããGUIãæä½ãããã®ã°ããã§ã¤ã¾ããªãã GUIã®æä½æ¹æ³ãªãã¦ä¸ç¬ã§å¿ãã¦ãã¾ãã®ã§ãtclã¨makefileã§ä¸æ°ã«ä½ãããããªç°å¢ãç¨æãã¦ããããã ãããâ¦
HiFive1ãã¼ãã¯RISC-Vãåä½ãã(ããããä¸çã§å¯ä¸åç¨ã®ï¼)ããã»ããµãã¼ãã§ããããã®HiFive1ãã¼ãã®ä»æ§ã¯ä»¥ä¸ã®ããã«ãªã£ã¦ããã Microcontroller: SiFive Freedom E310 (FE310) SiFive E31 Coreplex 32bit RV32IMAC (æ´æ°æ¼ç®ã®ã¿ãä¹é¤ç®ãã¼â¦
HiFive1ãã¼ãã¯RISC-Vãåä½ãã(ããããä¸çã§å¯ä¸åç¨ã®ï¼)ããã»ããµãã¼ãã§ããã ãã®ãã¼ãã使ã£ã¦ããã¤ã試è¡ãã¦ã¿ãããã¨ãããã®ã ããä¹ ãã¶ãã«ç«ã¡ä¸ããã®ã§å°ããªãããªã®æå³ãå ¼ãã¦æ´çãã¦ããã ããã°ã©ã ã®éçºã«ã¯ãSiFiveãå ¬â¦
ã¨ããã§ãRISC-V Rocket-Chipãã·ãã¥ã¬ã¼ã·ã§ã³ããã¨ããä½æ°ãªãmakeãå©ãã¦ã make CONFIG=DefaultConfig output/rv64ui-p-add.out ã¨ããã¦ãåæã«å®è¡ããã¦ãããã©ãããèããã¨å ·ä½çã«ã©ã®ããã«ãã¦åä½ãã¦ããã®ãåãããªãããããç解ãâ¦
RocketChipã®ãªã»ããã解é¤ãããã¨ãã¾ãã¯BootROMã¸ã®ãã§ãããå§ã¾ãã BootROMã¯ãTestDriver/TestHarness/ExampleRocketTop/bootromã«æ ¼ç´ããã¦ããã ã¾ãã¯ãã®å¨è¾ºã®æ³¢å½¢ãè¦ã¦ã¿ãããæåã«BootROMã«ã¢ã¯ã»ã¹ããã®ã¯ã0x00010040 ãã¢ã¯ã»ã¹ãâ¦
2017/09/05 TileLink Specification Ver.1.7 Draftãå ¬éããã¦ããã®ã§ã追è¨ãã¦ãã¾ãã RISC-Vå®è£ ã®Rocket-Chipã§ã¯ã足åãã®ã¤ã³ã¿ãã§ã¼ã¹ã¨ãã¦TileLinkã¨ããã¤ã³ã¿ãã§ã¼ã¹ã使ã£ã¦ãããã¨ããããããã©ãã ãæ¤ç´¢ãã¦ã詳細ãåºã¦ããªããTileâ¦
RISC-Vã®UCBå®è£ ã§ããRocketChipã¯RISC-Vã®ããã»ããµå®è£ ã®ä¸ã§æãåèã«ãªããã®ã§ãä¾ãã°SoCã«çµã¿è¾¼ãã¨ãªãã¨çã£å ã«å°å ¥ãèããRISC-V IPã®ä¸ã¤ã ã RocketChipã¯ããã©ã«ãã§64ãããå½ä»¤ããµãã¼ããã¦ãããã·ã³ãã«ãªãã¤ãã©ã¤ã³ãªããæ§è½â¦
CNTK 2.0ã®ãã¥ã¼ããªã¢ã«ã試è¡ããã ä»åã¯ããç¨åº¦ç¿»è¨³ã¨ããå½¢ã§å®æ½ãã¦ã¿ããã ãã¶èª¤è¨³ã¯ããã ããããã¶ãã¯ãªæ¦è¦ãã¤ããã¨ããå½¢ã§ãã£ã¦ããããã CNTK 103ã®ãã¥ã¼ããªã¢ã«ã¯4ç·¨ã§æ§æããã¦ãããMNISTã®æ°å¤èªèã®ãã¥ã¼ããªã¢ã«ã«ã¤ãã¦â¦
CNTK 2.0ã®ãã¥ã¼ããªã¢ã«ã試è¡ããã ä»åã¯ããç¨åº¦ç¿»è¨³ã¨ããå½¢ã§å®æ½ãã¦ã¿ããã ãã¶èª¤è¨³ã¯ããã ããããã¶ãã¯ãªæ¦è¦ãã¤ããã¨ããå½¢ã§ãã£ã¦ããããã github.com 以éã®æç« ã«ã¤ãã¦ã¯ãCNTK 2.0ã®ç¿»è¨³ãå«ãã§ãããã誤訳ãå«ãã§ããå¯è½æ§ãâ¦
RISC-Vã«ã¯riscv-testsã¨ãããã¹ããã¿ã³ã»ãããç¨æããã¦ãããããããæµããã¨ã«ããRISC-Vã®ã¢ã¼ããã¯ãã£ã¨ãã¦æ£ããå®è£ ããã¦ãããã©ããããã§ãã¯ãããã¨ãã§ããããã«ãªã£ã¦ããã github.com èªä½RISC-Vããã»ããµã«ããã¦ãããã®ãã¿ã³â¦
å¤ã ï¼å¤ã«ãªã£ã¦ãæãï¼ãã©ã½ã³ã«ã¯æãé©ããªãå£ç¯ãå¤ã®å°æ¥ã ï¼ æ£ç´æ±äº¬ãªãªã³ããã¯ãªãã¦å¤ã«éå¬ãã¦ãã©ã½ã³ãªãã¦ã§ããã¨ã¯æããªãããçå¤ä¸ã§ãç±å¸¯å¤ãªãå ¨ç¶æ¸©åº¦ãä¸ãããªããããæ±äº¬ãªãªã³ããã¯ã®ãã©ã½ã³ãªãã¦æ±äº¬ãã©ã½ã³ã§è©ä»£ãâ¦
ååã誤差éä¼æ¬æ³ãlibfixmathã©ã¤ãã©ãªã使ã£ã¦åºå®å°æ°ç¹åããããããéã«åºå®å°æ°ç¹åã«ããæ§è½ãä½ä¸ãã¦ãã¾ã£ã¦ããã ãã¯ãã©ã¤ãã©ãªã«ãããªã¼ããããã§ã¯ãªãã ãããã¨ãããã¨ã§ãæ§è½è§£æãè¡ããã¨ã«ããã Google Perfã«ããPerformaâ¦
誤差éä¼æ¬æ³ãå®è£ ãã¦MNISTã®å¦ç¿ã¨èªèããã°ã©ã ãCè¨èªã§ãã«ã¹ã¯ã©ããã§ä½ãããã®ç¶ãã åºå®å°æ°ç¹åã«ã¤ãã¦ã¯ãä»ç¤¾ã®ä½ã£ãã©ã¤ãã©ãªã使ãã»ããè¯ãæ°ããã¦æ¥ãã®ã§ã調æ»ããã¦ããã¨ä»¥ä¸ã®ã©ã¤ãã©ãªãè¦ã¤ãããMITã®ä½ã£ãåºå®å°æ°ç¹ã©â¦
誤差éä¼æ¬æ³ãå®è£ ãã¦MNISTã®å¦ç¿ã¨èªèããã°ã©ã ãCè¨èªã§ãã«ã¹ã¯ã©ããã§ä½ãã åä½ããã³ã¼ãã¯å®æããä»åº¦ã¯ãããåºå®å°æ°ç¹åããªããã°ãªããªããä»åã¯åºå®å°æ°ç¹åã®æ¤è¨ãè¡ãã double â> float ã§ç²¾åº¦ã確èªããã ã¾ããããã¾ã§ã«å®è£ ãâ¦
誤差éä¼æ¬æ³ãå®è£ ãã¦MNISTã®å¦ç¿ã¨èªèããã°ã©ã ãCè¨èªã§ãã«ã¹ã¯ã©ããã§ä½ããåä½ããã³ã¼ãã¯å®æããã®ã ããæçµçã«ã¯ãããã®ã³ã¼ãããã¤ã³ã³ã§å®è¡ãããããããã£ã¨è»½ãããªããã°ãªããªãã ã¾ãç¾ç¶ã®åé¡ç¹ã¨ãã¦ãCè¨èªã§æ¸ããããã°â¦
é¢ç½ãããªæ¬ãåºçãããã®ã§è³¼å ¥ããããGPUãæ¯ããæè¡ãã ã GPUãæ¯ããæè¡ ââè¶ ä¸¦åãã¼ãã¦ã§ã¢ã®å¿«é²æ[æè¡åºç¤] (WEB+DB PRESS plus)ä½è : Hisa Andoåºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾çºå£²æ¥: 2017/06/30ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼ãã®ååãâ¦
ãããããã¼ã«ãã§ã¤ã³ãä½ããããã ããªããè¦ãç®ã«ãé常ã«ããããªãRISC-Vã·ãã¥ã¬ã¼ã¿ãã¼ã«ã»ããã ãRISC-Vå½ä»¤ã»ããããx86/64ã¸ã®ãã¤ããªãã©ã³ã¹ã¬ã¼ã·ã§ã³(JIT)ããµãã¼ããã¦ããã RISC-Vã®ã»ãããã¼ã«ãã§ã¤ã³ç¾¤ã¯ãã¹ã¦æã£ã¦ããããâ¦
msyksphinz.hatenablog.com 誤差éä¼æ¬æ³ãCè¨èªã§å®è£ ãã¦ããã®ã ããPythonã®çµæã¨ã©ããã¦ãåããªãé¨åããããããã©ããããå¦ç¿ãç¶ãã¦ããã¨ã©ãã©ãæ£è§£çãä¸ãã£ã¦ãã£ãã®ã§ãããã°ããã¦ããã ãã¥ã¼ã©ã«ãããã¯ã¼ã¯ã®é£ããã¨ããã¯ãâ¦