SoC arm64 RK3588
Demo da placa de desenvolvimento RK3588
RK3588/RK3588S é um SoC ARM64 de alto desempenho lançado pela Rockchip, com as seguintes configurações:
- 8C (A764 + A554)
- GPU (4 núcleos, Mali-G610) com suporte a decodificação de hardware 8K
- NPU (2Tops * 3)
O RK3588 tem alguns módulos externos a mais, suportando mais interfaces, enquanto o RK3588S não tem esses módulos, mas seu preço é um pouco mais baixo.
Meu hardware
- Orange Pi 5 8G (RK3588S)
- Rock 5A 4G (RK3588S)
- Orange Pi 5 Plus 16G (RK3588)
De acordo com a documentação e o ecossistema da Orange Pi, parece ser um pouco melhor que o Rock Pi; na minha experiência, a documentação da Orange Pi realmente é bem feita, bem clara e vem em duas línguas, chinês e inglês. Por outro lado, a WIKI do Rock Pi, apesar de parecer mais moderna, aparenta ter mais críticas na comunidade, e também vi pessoas comentando sobre os problemas com fornecimento de energia PD do Rock 5.
Por isso, no momento, minha percepção é que, em termos de ecossistema de software, Raspberry Pi » Orange Pi > Rock Pi; e, em termos de custo-benefício, Orange Pi > Rock Pi » Raspberry Pi (agora a diferença não é tão significativa, já que os preços do Raspberry Pi caíram).
Outras placas RK3588 ou placas com outros SoCs ARM, ou são muito caras ou têm desempenho abaixo do esperado. Por enquanto, as placas chinesas que têm um melhor custo-benefício e são mais “hackeáveis” são a Orange Pi e a Rock Pi.
A FriendlyELEC (anteriormente conhecida como FriendlyARM, traduzida como “Braço Amigável”) também lançou produtos com RK3588 e RK3588S, porém, os produtos dessa empresa parecem ser principalmente destinados ao OpenWRT, com um design voltado para roteadores. Por enquanto, não estou interessado. A Wildfire, outra empresa que vem da educação em sistemas embarcados, também planeja lançar uma placa com RK3588S (da série LubanMao), que parece ter um preço OK e foi anunciada para estar disponível em 2023/8/8. No entanto, já tenho placas RK3588S suficientes e não estou considerando comprar mais por enquanto.
Outros materiais de referência da comunidade:
- Experiência e registros de problemas com o Rock 5B (RK3588) - também um tutorial inicial
- Comparação dos principais produtos chineses - Zhihu (uma rede social de perguntas e respostas chinesa)
O que se pode fazer com uma placa de desenvolvimento RK3588
- Brincar com sistemas embarcados via GPIO
- Instalar o sistema Android e usar como uma máquina de transmissão ao vivo com OBS, por exemplo, para transmitir vídeos locais em loop ou conteúdo de câmeras ao vivo
- Usar para gravar automaticamente as transmissões ao vivo de seus UPs favoritos, gravar automaticamente quando começam e poder rever a qualquer momento
- Usar como servidor de transmissão ao vivo/sala de bate-papo por vídeo, com suporte para codificação e decodificação em tempo real em diferentes resoluções
- Usar como um servidor virtual ou para Docker, virtualizando vários hosts ARM, e até mesmo rodar Android
- Usar como um nó ARM num cluster de máquinas virtuais Proxmox
Exemplos de uso do NPU
Se for usar o NPU, recomendo instalar diretamente a imagem oficial Debian da Orange Pi 5, o que deve apresentar menos problemas.
A Rockchip fornece dois repositórios relacionados ao NPU, que incluem manuais de uso, exemplos e drivers:
- rknn-toolkit2: Esse repositório realmente contém dois pacotes em Python, descritos a seguir
- rknn-toolkit2 x64: localizado na pasta docs/examples/packages na raiz do repositório, inclui documentação, exemplos e pacotes “wheel” para a versão x64 que só podem ser instalados em hosts x64 e dependem de frameworks de IA como ONNX, TensorFlow e PyTorch. Suporta inferência IA com NPU, inferência IA de emulador local e conversão de modelos ONNX para o formato rknn compatível com NPU
- Principalmente utilizado para depuração de modelos em PCs
- Atenção: de acordo com a documentação oficial, até a versão 1.4, este SDK é compatível apenas com os sistemas Ubuntu18.04(x64) / Ubuntu20.04(x64), e com as versões Python 3.6/3.8
- rknn-toolkit2 lite2 arm64: encontrado na pasta rknn_toolkit_lite2 do repositório, depende apenas do OpenCV e do NumPy, e fornece APIs Python para o NPU
- Pode ser utilizado para implantar modelos através da API Python
- Atenção: de acordo com a documentação oficial, até a versão 1.4, este SDK é compatível apenas com os sistemas Debian 10(arm64) / Debian 11(arm64), e com as versões Python 3.7/3.9
- rknn-toolkit2 x64: localizado na pasta docs/examples/packages na raiz do repositório, inclui documentação, exemplos e pacotes “wheel” para a versão x64 que só podem ser instalados em hosts x64 e dependem de frameworks de IA como ONNX, TensorFlow e PyTorch. Suporta inferência IA com NPU, inferência IA de emulador local e conversão de modelos ONNX para o formato rknn compatível com NPU
- rknpu2: O rknpu2 fornece uma API C para o NPU, principalmente usado para implantar modelos em linguagem C.
Atenção: o ambiente de desenvolvimento no PC é diferente dos requisitos do sistema no dispositivo, então preste atenção nas diferenças!
Embora ambos os repositórios usem repositórios git, todo o conteúdo subjacente é em forma de binários, como “.so”, “.whl”, imagens docker, e os códigos-fonte não são abertos.
Além disso, a imagem docker x64 fechada fornecida oficialmente é muito grande e foi compartilhada apenas através do lento serviço de compartilhamento da Baidu Cloud. Com base na documentação, eu mesmo escrevi um Dockerfile.rknn_toolkit2_1.4.0