SlideShare une entreprise Scribd logo
1  sur  92
Télécharger pour lire hors ligne
https://www.embarcados.com.br/seminario-de-sistemas-embarcados-e-iot-2019/
https://www.embarcados.com.br/seminario-de-sistemas-embarcados-e-iot-2019/
Uma Introdução a ISA RISC-V
e seu Ecossistema
Marcelo R. Pias, Nathan F. Garcia e Luiz Gustavo C. Xavier
Centro de Ciências Computacionais - C3
Universidade Federal do Rio Grande (FURG)
Sumário
1. Introdução: Why RISC-V?
2. ISA Base RV32I
3. Instruções Atômicas
4. Extensão Vetorial
5. RISC-V e Arquiteturas de
Domínio Específico
6. Fundação RISC-V
7. Bibliografia gratuita
2
Introdução: Why RISC-V ?
3
Era Pós-PC
4Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
Novas Tendências em Potência
5
Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
6
Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
7
Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
+1 bilhão vendido/ano
Mercado dominado por
processadores ISA ARM
+100.000 cores por
warehouse
Cloud Computing, SaaS,
IaaS
Infraestrutura Wired/Wireless
Smart TV / Música / Jogos /
Automotivo
Internet of Things!
Indústria 4.0
Mobile Warehouse-scale Embarcado
8
9
+1 bilhão vendido/ano
Mercado dominado por
processadores ISA ARM
+100.000 cores por
warehouse
Cloud Computing, SaaS,
IaaS
Infraestrutura Wired/Wireless
Smart TV / Música / Jogos /
Automotivo
Internet of Things!
Indústria 4.0
ARM x86 ARM
Abstração - Sistemas Modernos
10
ISA vs Microarquitetura
ISA, µArch, circuitosInterface Software e Hardware
Nível de aplicação
Desenvolvedores
Sistema Operacional
Compilador
11
MicroprocessadorISA - Arq. Conjunto de
Instruções
Por que o conjunto de instruções é tão
importante?
“A ISA é a interface mais
importante de um sistema de
computação, onde o Software
encontra o Hardware.”
12
● Precisamos de todas estas ISAs?
● Estas devem ser proprietárias?
● E se existisse uma ISA free e open-source que
todos pudessem utilizar?
13
Open Software - Padrões Funcionam!
14
Fonte: RISC-V Foundation
Origem do RISC-V: Ensino em Berkeley
15
Em 2010, após muitos projetos utilizarem MIPS e SPARC, foi o
momento de procurar uma ISA para os próximos projetos de
pesquisa:
● ARM quase impossível – sem 64-bit, complexo, Prop. Intelectual
● x86 impossível – extremamente complexa, problemas com Prop.
Intelectual
Início de projeto de 3 meses em 2010:
Desenvolver nova ISA do zero.
Andrew Waterman, Yunsup Lee, David Patterson, Krste Asanovic
O que há de diferente no RISC-V?
16
SIMPLICIDADE
DESIGN DO ZERO
MODULARIDADE
Muito menor se comparada
às outras ISAs comerciais
Pequena ISA Base
Evita utilizar características
da microarquitetura
ISA Base RV32I
17
Formato de Instrução (R - type)
add x1, x2, x3 #x1 = x2 + x3
18
Formato de Instrução (R - type)
add x1, x2, x3 #x1 = x2 + x3
19
Operação
(opcode)
Formato de Instrução (R - type)
add x1, x2, x3 #x1 = x2 + x3
20
Operação
(opcode)
Registrador de Destino
Formato de Instrução (R - type)
add x1, x2, x3 #x1 = x2 + x3
21
Operação
(opcode)
Registrador de Destino
Operandos
Formato de Instrução (R - type)
add x1, x2, x3 #x1 = x2 + x3
22
Operação
(opcode)
Registrador de Destino
Operandos Comentário
Formatos de Instrução
23
Conjunto de Registradores
24
Aritmética Básica
25
add rd, rs1, rs2
sub
sll (shift-left)
srl (shift-right)
addi rd, rs1, imm
subi
slli (shift-left-imm)
srli (shift-right-imm)
Operações de Desvio
26
Condicional:
beq rs1, rs2, imm
bne (not equal)
blt (less than)
bge (greater eq)
Incondicional:
jal rd, imm
jlr rd, rs1, imm
Exemplo: Soma de Vetores
27
int A[10], B[10], C[10];
for (int i = 0; i < 10; i++)
C[i] = A[i] + B[i];
Exemplo: Soma de Vetores
28
add x5, x0, x0 # i = 0
addi x28, x0, 40 # tam = 10 * 4 bytes
LOOP:
lw x6, 0(x12) # aux1 = A[i]
lw x7, 0(x13) # aux2 = B[i]
add x8, x6, x7 # sum = aux1 + aux 2
sw x8, 0(x10) # C[i] = sum
addi x12, x12, 4 # x12 = &A[i++]
addi x13, x13, 4 # x13 = &B[i++]
addi x10, x10, 4 # x10 = &C[i++]
addi x5, x5, 4 # i++
blt x5, x28, LOOP
x12: Endereço base de A[]
x13: Endereço base de B[]
x10: Endereço base de C[]
http://www.kvakil.me/venus/
Instruções Atômicas
29
O que são? Por que usá-las?
30
• Em cenários de execução concorrente, são necessários
meios para barrar o acesso simultâneo de diferentes
processos ou threads a uma mesma área de
endereçamento.
• Instruções Atômicas: atomicidade a nível de instrução,
muito mais “baratas” que aquisição de mutex.
31
32
Fonte: Wireless Multi-Sensor Board for IoT/Smart-Home. Disponível
em:https://www.tindie.com/products/cburgess129/wireless-multi-s
ensor-board-for-iotsmart-home/
Inst. Atômicas X Semaphores
33
var mtx sync.Mutex
mtx.Lock()
defer mtx.Unlock()
if x == value {
x = 0
}
atomic.CompareAndSwapInt32(&x, value, 0)
Inst. Atômicas X Semaphores
34
var mtx sync.Mutex
mtx.Lock()
defer mtx.Unlock()
if x == value {
x = 0
}
atomic.CompareAndSwapInt32(&x, value, 0)
Sys Mutex Lock/Unlock = 25ns
Go sync.Mutex ~= 100ns
Fonte: How to optimize Go code for really high performance.
Disponível em: https://www.youtube.com/watch?v=ZuQcbqYK0BY
Go atomic ~= 15ns
Sem contenção de trava
(+escalável)
RV32A
35
• Atomic Memory Operations (AMO):
add, and, or, swap, xor, …
• load reserved
lr.d rd,(rs1) lr.w rd,(rs1)
• store conditional
sc.d rd,rs2,(rs1) rc.w rd,rs2,(rs1)
Extensão Vetorial
36
Arquiteturas Puramente Vetoriais
37
• Ideia básica:
• Conjuntos de elementos de dados em “registradores vetoriais”
• Opera sobre estes registradores, escrevendo resultado na
memória
• Registradores são controlados pelo compilador
• Usados para “esconder” latência de memória
• Aumentar a largura de banda de memória
Por que o grande interesse?
38
Extensão vetorial (Intel / ARM)
Processamento Audio/Video Streaming
Máquina Vetorial
NVIDIA Nano Jetson GPU
(aplicações Deep Learning
embarcadas)
Máquina Vetorial
Apple GPUs
Neural Engine
NLP (Natural Language
Processing) - Deep Learning
Arquiteturas Puramente Vetoriais - RV32V
39
• Vagamente baseada no Cray-1
• 32 64-bit registradores vetoriais
• Totalmente pipeline
• Hazards de dados e controle são detectados
• Registradores Escalares (31 geral, 32 ponto flutuante)
Instruções RV32V
40
• .vv: operação sobre dois vetores
• .vs and .sv: operação sobre vetor e escalar
• LV/SV: vector load & vector store de um endereço
RV32V - Exemplo DAXPY
41
vsetdcfg 4*FP64 # Enable 4 DP FP vregs
fld f0,a # Load scalar a
vld v0,x5 # Load vector X
vmul v1,v0,f0 # Vector-scalar mult
vld v2,x6 # Load vector Y
vadd v3,v1,v2 # Vector-vector add
vst v3,x6 # Store the sum
vdisable # Disable vector regs
RV32V: 8 instruções
RV64: 258 instruções (modo escalar)
Tempo de Execução
42
• Depende de 2 fatores:
• Tamanho dos vetores operandos
• Dependência entre dados
• ULAS vetoriais consomem um elemento por ciclo de clock:
• Tempo de execução é aprox. o tamanho do vetor
Desafios
43
1. Tempo de Start Up
• Latência da unidade vetorial
• Considera o mesmo que no Cray-1
• Floating-point add => 6 clock cycles
• Floating-point multiply => 7 clock cycles
• Floating-point divide => 20 clock cycles
• Vector load => 12 clock cycles
Desafios
44
2. Novas Features:
• > 1 elemento de dados por ciclo relógio
• Cláusulas IF em código vetorial
• Matrizes Multidimensionais
• Matrizes Esparsas
• Programação de um computador vetorial
Exemplo Vector Masking Registers
45
int X[64], Y[64];
for (int i = 0; i < 64; i++){
if (X[i] != 0)
X[i] = X[i] – Y[i];
}
Exemplo Vector Masking Registers
46
vsetdcfg 2*FP64 # Enable 2 64b FP vector regs
vsetpcfgi1 # Enable 1 predicate register
vld v0,x5 # Load vector X into v0
vld v1,x6 # Load vector Y into v1
fmv.d.x f0,x0 # Put (FP) zero into f0
vpne p0,v0,f0 # Set p0(i) to 1 if v0(i)!=f0
vsub v0,v0,v1 # Subtract under vector mask
vst v0,x5 # Store the result in X
vdisable # Disable vector registers
vpdisable # Disable predicate registers
Exemplo Vector Masking Registers
47
vsetdcfg 2*FP64 # Enable 2 64b FP vector regs
vsetpcfgi1 # Enable 1 predicate register
vld v0,x5 # Load vector X into v0
vld v1,x6 # Load vector Y into v1
fmv.d.x f0,x0 # Put (FP) zero into f0
vpne p0,v0,f0 # Set p0(i) to 1 if v0(i)!=f0
vsub v0,v0,v1 # Subtract under vector mask
vst v0,x5 # Store the result in X
vdisable # Disable vector registers
vpdisable # Disable predicate registers
Uso de registradores de
“predicado” para
“desabilitar” elementos
RISC-V e Arquiteturas de Domínio Específico
48
Introdução
49
“Uma abordagem mais centrada em hardware é
projetar arquiteturas adaptadas a um domínio de
problema específico e oferecer ganhos significativos de
desempenho (e eficiência) para esse domínio.”
David Patterson
Introdução
50
Exemplos:
● módulos de satélites;
● gravadores de áudio;
● bitcoin miners;
● aceleradores de IA (Deep Learning).
Fonte: bitmain.com
Fonte: netxplatform.com
Unidade de Processamento de Tensores
51
● “Uma unidade de processamento de tensores (TPU) é um
circuito integrado desenvolvido pela Google especificamente
para o aprendizado de máquinas de rede neural.”
Fonte: physlink.com
Unidade de Processamento de Tensores
52
● Idealizado em 2006, desenvolvido em 2013;
● Curto tempo de desenvolvimento;
● Baseado nas funções do TensorFlow
● David Patterson (um dos criadores do RISC-V) participou do
desenvolvimento
Fonte: tensorflow.org
Unidade de Processamento de Tensores
53
Recursos computacionais:
● MXUs (Unidade de Multiplicação de Matrizes);
● Buffer unificado;
● Unidade de Ativação.
54
● Alto desempenho em computações de álgebra linear
● Treinamento de modelos drasticamente mais rápidos
UPTs: Vantagens
UPTs: Vantagens
55
● 1 TPU = 100 milhões de fotos analisadas no Google Fotos por dia
Fonte: techcrunch.com
UPTs: Vantagens
56
● Ótima relação Desempenho/Potência
Fonte: John Hennessy and David Patterson Deliver Turing Lecture at ISCA 2018
UPTs: Desvantagens
57
● Chips não comercializados;
● Acesso apenas através do Google Cloud para terceiros.
Opções de aceleradores de IA RISC-V
58
● Kendryte KD233
● ET-Maxion, ET-Minion e outras
Kendryte KD233
59
● Projeto aberto (https://github.com/kendryte/);
● Baseado em RISC-V;
● Módulos especializados;
● Comercializada, KD233 custa 50 dólares.
Fonte: cnx-software.com
Por quê RISC-V em Circuitos Especializados?
60
● Livre;
● Em crescimento;
● Modular.
Por quê RISC-V em Circuitos Especializados?
61
● Futuras extensões
Fonte: seucondominio.com.br
Por quê RISC-V em Circuitos Especializados?
62
● 2% da emissão de CO2 do mundo advém do
uso de aparelhos eletrônicos
● CIAEs e ADEs: muito importantes!
Fonte: Nature - How to stop data centres from gobbling up the world’s electricity
Fundação RISC-V
63
Missão
64
“A Fundação RISC-V é uma organização
sem fins lucrativos controlada por seus
membros, direcionando o
desenvolvimento e impulsão a adoção
da ISA RISC-V.”
Membros
65
● Mais de 230 membros até o momento;
● Hierarquia definida, com limitação baseada em
incentivo.
Como se tornar membro?
66
• Diferentes planos de contribuição (organizações e
individual)
• Benefícios: participação em eventos da fundação, direito
a voto e assento nas reuniões de decisão
• https://riscv.org/membership-application/
Membros
67
Eventos
68
Hsinchu, Taiwan
Barcelona, Espanha
Shanghai, China
Mais informações
69
Fundação RISC-V: https://riscv.org/
CPU Cores do projeto:
https://github.com/freechipsproject/rocket-chip
Bibliografia Gratuita
70
Guia prático RISC-V: Atlas de uma
arquitetura aberta
Guia prático RISC-V: Atlas de uma Arquitetura Aberta
71
● 100% livre, gratuito
● Traduzido em português
● Ótima introdução ao RISC-V
Objetivo
72
“Pensamos que um guia de programação
compacto ajudaria os recém chegados a
entender por que RISC-V é um conjunto
de instruções atraente, e também verem
como ela difere-se das ISAs do passado.”
Alguns Tópicos Abordados
73
Cap. 2: ISA Base;
Cap. 4: Multiplicação e divisão;
Cap. 6: Instruções atômicas;
Cap. 7: Instruções compactas;
Cap. 8: Computação vetorial;
Cap. 11: Futuras extensões.
Abordagem
74
Muitas comparações com
ISAs existentes
(proprietárias);
Abordagem
75
Simplificação de conjuntos;
Abordagem
76
Comparação de códigos;
Cartão de referência
77
● Todas instruções, inclusive
as opcionais;
Leitura
78
● 125 páginas de conteúdo; 236 no total
● 75 imagens e tabelas nessas páginas;
Em comparação:
RISC-V: Atlas de uma arquitetura aberta: 236 páginas no
total e 76,702 palavras
ARM Architecture Reference Manual Ltd. 2014: 2736
páginas 895,032 palavras
Intel Corporation 2016: 2198 páginas e 2,186,259 palavras
Obrigado
rvbookportuguese@gmail.com
79
80
Slides Backup
Single Instruction Multiple Data - SIMD
81
• Explora paralelismo em nível de dados
• Computação científica orientada a matrizes
• Processadores orientados a mídias (imagem e áudio)
• É mais eficiente em termos de energia que MIMD
• Busca apenas UMA instrução por operação nos dados
• opção atrativa para dispositivos móveis
Operações em Lotes - “Comboios”
82
• Sequências de dependências “leitura-após-escrita”
colocadas no mesmo grupo através de encadeamento
• Encadeamento:
• Permite operação sobre vetor iniciar a medida que elementos
individuais do operandos de origem tornam-se disponíveis
Exemplo
83
vld v0,x5 # Load vector X
vmul v1,v0,f0 # Vector-scalar multiply
vld v2,x6 # Load vector Y
vadd v3,v1,v2 # Vector-vector add
vst v3,x6 # Store the sum
Comboios:
1 vld vmul
2 vld vadd
3 vst
ET-Maxion e ET-Minion
84
● Baseados na arquitetura de processadores BOOM
(Berkeley-Out-Of-Order Architecture). Ou seja, livre:
https://github.com/riscv-boom/riscv-boom
● Focados em aplicações de aprendizado em geral (álgebra linear)
● Visam o melhor desempenho por watt do mercado.
https://www.embarcados.com.br/seminario-de-sistemas-embarcados-e-iot-2019/
https://www.embarcados.com.br/seminario-de-sistemas-embarcados-e-iot-2019/
Webinar: Uma introdução a ISA RISC-V e seu ecossistema

Contenu connexe

Similaire à Webinar: Uma introdução a ISA RISC-V e seu ecossistema

Dnad 2012 iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquiteturaDnad 2012   iis - uma questão de arquitetura
Dnad 2012 iis - uma questão de arquitetura
Sidney Filho
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
CDS
 

Similaire à Webinar: Uma introdução a ISA RISC-V e seu ecossistema (20)

Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
 
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Plataformas cisc e risc
Plataformas cisc e riscPlataformas cisc e risc
Plataformas cisc e risc
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 
Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
Dnad 2012 iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquiteturaDnad 2012   iis - uma questão de arquitetura
Dnad 2012 iis - uma questão de arquitetura
 
IIS - Uma questão de arquitetura
IIS - Uma questão de arquiteturaIIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
 
Aula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdfAula 1 introdução a VHDL 2016.pdf
Aula 1 introdução a VHDL 2016.pdf
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Boteco Xen
Boteco XenBoteco Xen
Boteco Xen
 

Plus de Embarcados

Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Embarcados
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Embarcados
 

Plus de Embarcados (20)

Webinar: Controle de motores BLDC e de indução trifásico
Webinar: Controle de motores BLDC e de indução trifásicoWebinar: Controle de motores BLDC e de indução trifásico
Webinar: Controle de motores BLDC e de indução trifásico
 
Webinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfWebinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdf
 
Webinar: Especificação de Componentes Passivos
Webinar: Especificação de Componentes PassivosWebinar: Especificação de Componentes Passivos
Webinar: Especificação de Componentes Passivos
 
Webinar: Projeto de hardware utilizando Conversores DC/DC
Webinar: Projeto de hardware utilizando Conversores DC/DCWebinar: Projeto de hardware utilizando Conversores DC/DC
Webinar: Projeto de hardware utilizando Conversores DC/DC
 
Webinar: Comunicação TCP/IP segura
Webinar: Comunicação TCP/IP seguraWebinar: Comunicação TCP/IP segura
Webinar: Comunicação TCP/IP segura
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto Project
 
Webinar: Bancada de eletrônica profissional
Webinar: Bancada de eletrônica profissionalWebinar: Bancada de eletrônica profissional
Webinar: Bancada de eletrônica profissional
 
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
 
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
 
Webinar: Microcontroladores Infineon TRAVEO T2G
Webinar: Microcontroladores Infineon TRAVEO T2GWebinar: Microcontroladores Infineon TRAVEO T2G
Webinar: Microcontroladores Infineon TRAVEO T2G
 
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAsWebinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
 
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
 
Cristais e Ressonadores Murata
Cristais e Ressonadores MurataCristais e Ressonadores Murata
Cristais e Ressonadores Murata
 
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potênciaWebinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
 
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
 
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassezWebinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
 
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
 
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiroWebinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 

Webinar: Uma introdução a ISA RISC-V e seu ecossistema

  • 1.
  • 2.
  • 5. Uma Introdução a ISA RISC-V e seu Ecossistema Marcelo R. Pias, Nathan F. Garcia e Luiz Gustavo C. Xavier Centro de Ciências Computacionais - C3 Universidade Federal do Rio Grande (FURG)
  • 6. Sumário 1. Introdução: Why RISC-V? 2. ISA Base RV32I 3. Instruções Atômicas 4. Extensão Vetorial 5. RISC-V e Arquiteturas de Domínio Específico 6. Fundação RISC-V 7. Bibliografia gratuita 2
  • 8. Era Pós-PC 4Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
  • 9. Novas Tendências em Potência 5 Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
  • 10. 6 Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
  • 11. 7 Fonte: Patterson, Computer Architecture Guide: Design and Principles (2017)
  • 12. +1 bilhão vendido/ano Mercado dominado por processadores ISA ARM +100.000 cores por warehouse Cloud Computing, SaaS, IaaS Infraestrutura Wired/Wireless Smart TV / Música / Jogos / Automotivo Internet of Things! Indústria 4.0 Mobile Warehouse-scale Embarcado 8
  • 13. 9 +1 bilhão vendido/ano Mercado dominado por processadores ISA ARM +100.000 cores por warehouse Cloud Computing, SaaS, IaaS Infraestrutura Wired/Wireless Smart TV / Música / Jogos / Automotivo Internet of Things! Indústria 4.0 ARM x86 ARM
  • 14. Abstração - Sistemas Modernos 10
  • 15. ISA vs Microarquitetura ISA, µArch, circuitosInterface Software e Hardware Nível de aplicação Desenvolvedores Sistema Operacional Compilador 11 MicroprocessadorISA - Arq. Conjunto de Instruções
  • 16. Por que o conjunto de instruções é tão importante? “A ISA é a interface mais importante de um sistema de computação, onde o Software encontra o Hardware.” 12
  • 17. ● Precisamos de todas estas ISAs? ● Estas devem ser proprietárias? ● E se existisse uma ISA free e open-source que todos pudessem utilizar? 13
  • 18. Open Software - Padrões Funcionam! 14 Fonte: RISC-V Foundation
  • 19. Origem do RISC-V: Ensino em Berkeley 15 Em 2010, após muitos projetos utilizarem MIPS e SPARC, foi o momento de procurar uma ISA para os próximos projetos de pesquisa: ● ARM quase impossível – sem 64-bit, complexo, Prop. Intelectual ● x86 impossível – extremamente complexa, problemas com Prop. Intelectual Início de projeto de 3 meses em 2010: Desenvolver nova ISA do zero. Andrew Waterman, Yunsup Lee, David Patterson, Krste Asanovic
  • 20. O que há de diferente no RISC-V? 16 SIMPLICIDADE DESIGN DO ZERO MODULARIDADE Muito menor se comparada às outras ISAs comerciais Pequena ISA Base Evita utilizar características da microarquitetura
  • 22. Formato de Instrução (R - type) add x1, x2, x3 #x1 = x2 + x3 18
  • 23. Formato de Instrução (R - type) add x1, x2, x3 #x1 = x2 + x3 19 Operação (opcode)
  • 24. Formato de Instrução (R - type) add x1, x2, x3 #x1 = x2 + x3 20 Operação (opcode) Registrador de Destino
  • 25. Formato de Instrução (R - type) add x1, x2, x3 #x1 = x2 + x3 21 Operação (opcode) Registrador de Destino Operandos
  • 26. Formato de Instrução (R - type) add x1, x2, x3 #x1 = x2 + x3 22 Operação (opcode) Registrador de Destino Operandos Comentário
  • 29. Aritmética Básica 25 add rd, rs1, rs2 sub sll (shift-left) srl (shift-right) addi rd, rs1, imm subi slli (shift-left-imm) srli (shift-right-imm)
  • 30. Operações de Desvio 26 Condicional: beq rs1, rs2, imm bne (not equal) blt (less than) bge (greater eq) Incondicional: jal rd, imm jlr rd, rs1, imm
  • 31. Exemplo: Soma de Vetores 27 int A[10], B[10], C[10]; for (int i = 0; i < 10; i++) C[i] = A[i] + B[i];
  • 32. Exemplo: Soma de Vetores 28 add x5, x0, x0 # i = 0 addi x28, x0, 40 # tam = 10 * 4 bytes LOOP: lw x6, 0(x12) # aux1 = A[i] lw x7, 0(x13) # aux2 = B[i] add x8, x6, x7 # sum = aux1 + aux 2 sw x8, 0(x10) # C[i] = sum addi x12, x12, 4 # x12 = &A[i++] addi x13, x13, 4 # x13 = &B[i++] addi x10, x10, 4 # x10 = &C[i++] addi x5, x5, 4 # i++ blt x5, x28, LOOP x12: Endereço base de A[] x13: Endereço base de B[] x10: Endereço base de C[] http://www.kvakil.me/venus/
  • 34. O que são? Por que usá-las? 30 • Em cenários de execução concorrente, são necessários meios para barrar o acesso simultâneo de diferentes processos ou threads a uma mesma área de endereçamento. • Instruções Atômicas: atomicidade a nível de instrução, muito mais “baratas” que aquisição de mutex.
  • 35. 31
  • 36. 32 Fonte: Wireless Multi-Sensor Board for IoT/Smart-Home. Disponível em:https://www.tindie.com/products/cburgess129/wireless-multi-s ensor-board-for-iotsmart-home/
  • 37. Inst. Atômicas X Semaphores 33 var mtx sync.Mutex mtx.Lock() defer mtx.Unlock() if x == value { x = 0 } atomic.CompareAndSwapInt32(&x, value, 0)
  • 38. Inst. Atômicas X Semaphores 34 var mtx sync.Mutex mtx.Lock() defer mtx.Unlock() if x == value { x = 0 } atomic.CompareAndSwapInt32(&x, value, 0) Sys Mutex Lock/Unlock = 25ns Go sync.Mutex ~= 100ns Fonte: How to optimize Go code for really high performance. Disponível em: https://www.youtube.com/watch?v=ZuQcbqYK0BY Go atomic ~= 15ns Sem contenção de trava (+escalável)
  • 39. RV32A 35 • Atomic Memory Operations (AMO): add, and, or, swap, xor, … • load reserved lr.d rd,(rs1) lr.w rd,(rs1) • store conditional sc.d rd,rs2,(rs1) rc.w rd,rs2,(rs1)
  • 41. Arquiteturas Puramente Vetoriais 37 • Ideia básica: • Conjuntos de elementos de dados em “registradores vetoriais” • Opera sobre estes registradores, escrevendo resultado na memória • Registradores são controlados pelo compilador • Usados para “esconder” latência de memória • Aumentar a largura de banda de memória
  • 42. Por que o grande interesse? 38 Extensão vetorial (Intel / ARM) Processamento Audio/Video Streaming Máquina Vetorial NVIDIA Nano Jetson GPU (aplicações Deep Learning embarcadas) Máquina Vetorial Apple GPUs Neural Engine NLP (Natural Language Processing) - Deep Learning
  • 43. Arquiteturas Puramente Vetoriais - RV32V 39 • Vagamente baseada no Cray-1 • 32 64-bit registradores vetoriais • Totalmente pipeline • Hazards de dados e controle são detectados • Registradores Escalares (31 geral, 32 ponto flutuante)
  • 44. Instruções RV32V 40 • .vv: operação sobre dois vetores • .vs and .sv: operação sobre vetor e escalar • LV/SV: vector load & vector store de um endereço
  • 45. RV32V - Exemplo DAXPY 41 vsetdcfg 4*FP64 # Enable 4 DP FP vregs fld f0,a # Load scalar a vld v0,x5 # Load vector X vmul v1,v0,f0 # Vector-scalar mult vld v2,x6 # Load vector Y vadd v3,v1,v2 # Vector-vector add vst v3,x6 # Store the sum vdisable # Disable vector regs RV32V: 8 instruções RV64: 258 instruções (modo escalar)
  • 46. Tempo de Execução 42 • Depende de 2 fatores: • Tamanho dos vetores operandos • Dependência entre dados • ULAS vetoriais consomem um elemento por ciclo de clock: • Tempo de execução é aprox. o tamanho do vetor
  • 47. Desafios 43 1. Tempo de Start Up • Latência da unidade vetorial • Considera o mesmo que no Cray-1 • Floating-point add => 6 clock cycles • Floating-point multiply => 7 clock cycles • Floating-point divide => 20 clock cycles • Vector load => 12 clock cycles
  • 48. Desafios 44 2. Novas Features: • > 1 elemento de dados por ciclo relógio • Cláusulas IF em código vetorial • Matrizes Multidimensionais • Matrizes Esparsas • Programação de um computador vetorial
  • 49. Exemplo Vector Masking Registers 45 int X[64], Y[64]; for (int i = 0; i < 64; i++){ if (X[i] != 0) X[i] = X[i] – Y[i]; }
  • 50. Exemplo Vector Masking Registers 46 vsetdcfg 2*FP64 # Enable 2 64b FP vector regs vsetpcfgi1 # Enable 1 predicate register vld v0,x5 # Load vector X into v0 vld v1,x6 # Load vector Y into v1 fmv.d.x f0,x0 # Put (FP) zero into f0 vpne p0,v0,f0 # Set p0(i) to 1 if v0(i)!=f0 vsub v0,v0,v1 # Subtract under vector mask vst v0,x5 # Store the result in X vdisable # Disable vector registers vpdisable # Disable predicate registers
  • 51. Exemplo Vector Masking Registers 47 vsetdcfg 2*FP64 # Enable 2 64b FP vector regs vsetpcfgi1 # Enable 1 predicate register vld v0,x5 # Load vector X into v0 vld v1,x6 # Load vector Y into v1 fmv.d.x f0,x0 # Put (FP) zero into f0 vpne p0,v0,f0 # Set p0(i) to 1 if v0(i)!=f0 vsub v0,v0,v1 # Subtract under vector mask vst v0,x5 # Store the result in X vdisable # Disable vector registers vpdisable # Disable predicate registers Uso de registradores de “predicado” para “desabilitar” elementos
  • 52. RISC-V e Arquiteturas de Domínio Específico 48
  • 53. Introdução 49 “Uma abordagem mais centrada em hardware é projetar arquiteturas adaptadas a um domínio de problema específico e oferecer ganhos significativos de desempenho (e eficiência) para esse domínio.” David Patterson
  • 54. Introdução 50 Exemplos: ● módulos de satélites; ● gravadores de áudio; ● bitcoin miners; ● aceleradores de IA (Deep Learning). Fonte: bitmain.com Fonte: netxplatform.com
  • 55. Unidade de Processamento de Tensores 51 ● “Uma unidade de processamento de tensores (TPU) é um circuito integrado desenvolvido pela Google especificamente para o aprendizado de máquinas de rede neural.” Fonte: physlink.com
  • 56. Unidade de Processamento de Tensores 52 ● Idealizado em 2006, desenvolvido em 2013; ● Curto tempo de desenvolvimento; ● Baseado nas funções do TensorFlow ● David Patterson (um dos criadores do RISC-V) participou do desenvolvimento Fonte: tensorflow.org
  • 57. Unidade de Processamento de Tensores 53 Recursos computacionais: ● MXUs (Unidade de Multiplicação de Matrizes); ● Buffer unificado; ● Unidade de Ativação.
  • 58. 54 ● Alto desempenho em computações de álgebra linear ● Treinamento de modelos drasticamente mais rápidos UPTs: Vantagens
  • 59. UPTs: Vantagens 55 ● 1 TPU = 100 milhões de fotos analisadas no Google Fotos por dia Fonte: techcrunch.com
  • 60. UPTs: Vantagens 56 ● Ótima relação Desempenho/Potência Fonte: John Hennessy and David Patterson Deliver Turing Lecture at ISCA 2018
  • 61. UPTs: Desvantagens 57 ● Chips não comercializados; ● Acesso apenas através do Google Cloud para terceiros.
  • 62. Opções de aceleradores de IA RISC-V 58 ● Kendryte KD233 ● ET-Maxion, ET-Minion e outras
  • 63. Kendryte KD233 59 ● Projeto aberto (https://github.com/kendryte/); ● Baseado em RISC-V; ● Módulos especializados; ● Comercializada, KD233 custa 50 dólares. Fonte: cnx-software.com
  • 64. Por quê RISC-V em Circuitos Especializados? 60 ● Livre; ● Em crescimento; ● Modular.
  • 65. Por quê RISC-V em Circuitos Especializados? 61 ● Futuras extensões Fonte: seucondominio.com.br
  • 66. Por quê RISC-V em Circuitos Especializados? 62 ● 2% da emissão de CO2 do mundo advém do uso de aparelhos eletrônicos ● CIAEs e ADEs: muito importantes! Fonte: Nature - How to stop data centres from gobbling up the world’s electricity
  • 68. Missão 64 “A Fundação RISC-V é uma organização sem fins lucrativos controlada por seus membros, direcionando o desenvolvimento e impulsão a adoção da ISA RISC-V.”
  • 69. Membros 65 ● Mais de 230 membros até o momento; ● Hierarquia definida, com limitação baseada em incentivo.
  • 70. Como se tornar membro? 66 • Diferentes planos de contribuição (organizações e individual) • Benefícios: participação em eventos da fundação, direito a voto e assento nas reuniões de decisão • https://riscv.org/membership-application/
  • 73. Mais informações 69 Fundação RISC-V: https://riscv.org/ CPU Cores do projeto: https://github.com/freechipsproject/rocket-chip
  • 74. Bibliografia Gratuita 70 Guia prático RISC-V: Atlas de uma arquitetura aberta
  • 75. Guia prático RISC-V: Atlas de uma Arquitetura Aberta 71 ● 100% livre, gratuito ● Traduzido em português ● Ótima introdução ao RISC-V
  • 76. Objetivo 72 “Pensamos que um guia de programação compacto ajudaria os recém chegados a entender por que RISC-V é um conjunto de instruções atraente, e também verem como ela difere-se das ISAs do passado.”
  • 77. Alguns Tópicos Abordados 73 Cap. 2: ISA Base; Cap. 4: Multiplicação e divisão; Cap. 6: Instruções atômicas; Cap. 7: Instruções compactas; Cap. 8: Computação vetorial; Cap. 11: Futuras extensões.
  • 78. Abordagem 74 Muitas comparações com ISAs existentes (proprietárias);
  • 81. Cartão de referência 77 ● Todas instruções, inclusive as opcionais;
  • 82. Leitura 78 ● 125 páginas de conteúdo; 236 no total ● 75 imagens e tabelas nessas páginas; Em comparação: RISC-V: Atlas de uma arquitetura aberta: 236 páginas no total e 76,702 palavras ARM Architecture Reference Manual Ltd. 2014: 2736 páginas 895,032 palavras Intel Corporation 2016: 2198 páginas e 2,186,259 palavras
  • 85. Single Instruction Multiple Data - SIMD 81 • Explora paralelismo em nível de dados • Computação científica orientada a matrizes • Processadores orientados a mídias (imagem e áudio) • É mais eficiente em termos de energia que MIMD • Busca apenas UMA instrução por operação nos dados • opção atrativa para dispositivos móveis
  • 86. Operações em Lotes - “Comboios” 82 • Sequências de dependências “leitura-após-escrita” colocadas no mesmo grupo através de encadeamento • Encadeamento: • Permite operação sobre vetor iniciar a medida que elementos individuais do operandos de origem tornam-se disponíveis
  • 87. Exemplo 83 vld v0,x5 # Load vector X vmul v1,v0,f0 # Vector-scalar multiply vld v2,x6 # Load vector Y vadd v3,v1,v2 # Vector-vector add vst v3,x6 # Store the sum Comboios: 1 vld vmul 2 vld vadd 3 vst
  • 88. ET-Maxion e ET-Minion 84 ● Baseados na arquitetura de processadores BOOM (Berkeley-Out-Of-Order Architecture). Ou seja, livre: https://github.com/riscv-boom/riscv-boom ● Focados em aplicações de aprendizado em geral (álgebra linear) ● Visam o melhor desempenho por watt do mercado.
  • 89.