Passa ai contenuti principali

RISC-V - ARM - TENSORFLOW - OPENAI

 



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
   


jal salta ad una funzione. Calcola l'indirizzo di destinazione aggiungendo al PC suo il valore di offset qui calcolato dall'assemblatore con etichetta plus ma valore numerico per no. Nel frattempo nel registro indicato jal mette la posizione dell'istruzione successiva alla sua da utilizzare dalla subroutine al return.

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.


Scegliere Maixduino Board.

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

Post popolari in questo blog