Registri da x0 a x31 + pc
Ogni registro ha un nome convenzionalmente dato in base all'uso consigliato, ad esempio x1 e' ra (return address) x2 sp (stack pointer)
sp e' lo stack-pointer
addi sp,sp,-8 SP <-- SP-8
il registro RA (return address) x1 da standard dovrebbe essere usato allo scopo.
https://github.com/features/copilot
https://www.cs.cornell.edu/courses/cs3410/2019sp/riscv/interpreter/
Seeed-studio è una startup cinese fondata nel 2008, a Shenzhen, specializzata in hardware open-source. In particolare un prodotto interessante è una famiglia di schede compatibili con Arduino, quindi con le quali si può utilizzare tutto il software disponibile per Arduino. Queste schede si chiamano Seeeduino è il produttore afferma che dal punto di vista hardware hanno dei miglioramenti rispetto Arduino.
Nel mio caso mi sono interessato alla scheda Maixduino che ha un processore RISC-V 64. La scheda ha un modulo M1 (MAIX-1) che in particolare ha:
- Un chip MCU K210 che ha al suo interno un RISC-V 64 dual core, un KPU CNN Accelerator
- Un chip WIFI, una flash, un DC-DC e un IPEX
Il modulo M1 (MAIX-1) è apparentemente un singolo chip per AI ma contiene più circuiti e piu' usattamente un RISC-V dual-core, una FPU, una APU e un FFT.
Ha delle performance di 230Gops (Giga Operation For Second), consuma solo 0.3W, e costa solo 5$.
Può riconoscere facce o oggetti.
Supporta: TensorFlow lite, FreeRTOS, MicroPython
L'MCU Kendryte210 supporta il sistema operativo FreeRTOS. E' un prodotto di https://canaan.io ha due core RISC-V con FPU
--------------
Per usare la board scaricare l'ultima versione della IDE di Arduino:
https://www.arduino.cc/en/software
Installare. Selezionare il menu impostazioni e mettere in "URL aggiuntive per il Gestore schede" questa URL:
http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json
Ora andare nel menu Strumenti | Scheda Arduino 1 | Gestore Schede
Cercare nella finestra che si Apre Maixduino e installare:
Scarichera' tools etc.
A questo punto il Menu "Scheda Arduino uno" cambia e all'interno appare Maixduino con le schede della famiglia.
A questo punto abbiamo personalizzato il software per la nostra scheda.
-------------
Knowledge Processing Unit (KPU, aka Neural network Processing Unit). KPU is a general-purpose neural network processor that implements convolutional neural network calculations with low power consumption. It can acquire the size, coordinates and types of detected objects in real time, and detect and classify faces or objects. When using kpu, the neural network model must be generated with the model compiler.
1.2 Features KPU has the following characteristics:
• Supports the fixed training model that the common training framework trains according to specific restriction rules
• There is no direct limit on the number of network layers, which supports separate configuration of each layer of convolutional neural network parameters, including the number of input and output channels, input and output line width and column height.
• Support for two convolution kernels 1x1 and 3x3
• Support for any form of activation function
• The maximum supported neural network parameter size in real-time work is 5.5MiB to 5.9MiB
• Maximum support network parameter size when working in non-real time is (Flash
capacity) - (software size)
kendryte_standalone_programming_guide_20190311144158_en.pdf
Commenti
Posta un commento