A Qualcomm deu grandes saltos no desempenho da IA com o novo Snapdragon 865 SoC. Analisamos as mudanças que a Qualcomm fez para acelerar o aprendizado de máquina.
Parece que não podemos passar um dia sem ver “inteligência artificial” nas notícias, e a semana passada não foi exceção, em grande parte graças ao Snapdragon Tech Summit. Todos os anos, a Qualcomm revela a infinidade de melhorias que traz ao seu Hexagon DSP e ao Qualcomm AI Engine, um termo que eles usam para toda a sua plataforma de computação heterogênea - CPU, GPU e DSP - ao falar sobre IA cargas de trabalho. Há alguns anos, a insistência da Qualcomm em afastar a conversa dos pontos de discussão tradicionais, como melhorias anuais no desempenho da CPU, parecia um pouco estranha. No entanto, em 2019 e com o Snapdragon 865, vemos que a computação heterogénea está de facto no comando do seu impulso de computação móvel, à medida que a IA e as cargas de trabalho aceleradas por hardware parecem se infiltrar em uma variedade de casos de uso e aplicativos, desde mídias sociais até tarefas cotidianas. Serviços.
O Snapdragon 865 traz o mecanismo de IA de 5ª geração da Qualcomm e com ele vêm melhorias interessantes no desempenho e na eficiência de energia – mas isso era de se esperar. Em um mar de especificações, números de desempenho, termos de engenharia sofisticados e chavões de marketing cansativos, é fácil perder de vista o que essas melhorias realmente significam. O que eles descrevem? Por que estas atualizações são tão significativas para aqueles que implementam IA nas suas aplicações hoje, e talvez mais importante, para aqueles que pretendem fazê-lo no futuro?
Neste artigo, faremos um tour acessível, porém completo, do Qualcomm AI Engine, examinando sua história, seus componentes e as atualizações do Snapdragon 865 e, o mais importante, por que ou como cada um deles contribuiu para a experiência atual dos smartphones, desde filtros engraçados até assistentes digitais.
O Hexagon DSP e o Qualcomm AI Engine: quando a marca faz a diferença
Embora não tenha podido participar do Snapdragon Tech Summit desta semana, participei de todos os outros desde 2015. Se você se lembra, que foi o ano da bagunça que foi o Snapdragon 810, e por isso os jornalistas daquele loft em Chelsea, na cidade de Nova York, estavam ansiosos para descobrir como o Snapdragon 820 resgataria a empresa. E era um ótimo chipset, certo: ele prometia melhorias saudáveis de desempenho (sem nenhum afogamento), voltando aos então testados e comprovados núcleos personalizados pelos quais a Qualcomm era conhecida. No entanto, lembro-me também de um anúncio muito subtil que, em retrospectiva, deveria ter recebido mais atenção: o segunda geração do Hexagon 680 DSP e suas extensões de vetor Hexagon de instrução única e dados múltiplos (SIMD), ou HVX. Talvez se os engenheiros não tivessem nomeado o recurso, ele teria recebido a atenção que merecia.
Este coprocessador permite que os threads de hardware da unidade DSP escalar acessem “contextos” HVX (arquivos de registro) para amplas capacidades de processamento vetorial. Ele permitiu o descarregamento de cargas de trabalho de computação significativas da CPU ou GPU, que consome muita energia, para o DSP com eficiência energética para que as tarefas de imagem e visão computacional sejam executadas com desempenho substancialmente melhorado por miliwatt. Eles são perfeitos para aplicar operações idênticas em elementos vetoriais contíguos (originalmente apenas números inteiros), tornando-os adequados para cargas de trabalho de visão computacional. Escrevemos um artigo detalhado sobre DSP e HVX no passado, observando que a arquitetura HVX se presta bem à paralelização e, obviamente, ao processamento de grandes vetores de entrada. Na época, a Qualcomm promoveu o DSP e o HVX quase exclusivamente descrevendo as melhorias que eles traria cargas de trabalho de visão computacional, como o detector de canto Harris e outras janelas deslizantes métodos.
Somente com o advento do aprendizado profundo em aplicativos móveis de consumo é que o DSP, seu vetor unidades de processamento (e agora, um acelerador tensor) se casariam com IA e redes neurais, em especial. Mas, olhando para trás, faz todo o sentido: a arquitetura do processador de sinal digital (DSP), originalmente projetada para lidar com dados digitalizados entradas de sinal analógico ou do mundo real, presta-se a muitas das mesmas cargas de trabalho que muitos algoritmos de aprendizado de máquina e neurais redes. Por exemplo, os DSPs são adaptados para núcleos de filtros, operações de convolução e correlação, cálculos de 8 bits, uma tonelada de álgebra linear (produtos vetoriais e matriciais) e operações de multiplicação e acumulação (MAC), todas mais eficientes quando paralelizado. O tempo de execução de uma rede neural também é altamente dependente da multiplicação de grandes vetores, matrizes e/ou tensores, portanto é natural que as vantagens de desempenho do DSP se traduzam perfeitamente em arquiteturas de redes neurais como bem. Revisitaremos este tópico em breve!
Nos anos seguintes, a Qualcomm continuou a enfatizar que não oferece apenas chipsets, mas plataformas móveis, e que eles não se concentrem apenas na melhoria de componentes específicos, mas fornecendo computação "heterogênea". Em 2017, eles lançaram seu SDK do Snapdragon Neural Processing Engine (para aceleração de tempo de execução) na Qualcomm Developer Network e, no início de 2018, eles anunciou o Qualcomm Artificial Intelligence Engine para consolidar seus vários componentes de hardware e software com capacidade de IA (CPU, GPU, DSP) e software em um único nome. Com esta nomenclatura útil, eles conseguiram anunciar claramente suas melhorias de desempenho de IA no Snapdragon 855 e Snapdragon 865, sendo capaz de explicar confortavelmente o número de trilhões de operações por segundo (TOPS) e a porcentagem anual melhorias. Aproveitando as melhorias geracionais em CPU, GPU e DSP - todos com foco em IA atualizações - a empresa é capaz de publicar benchmarks impressionantes em relação aos concorrentes, que abordaremos Em breve. Com os recentes esforços de marketing da empresa e mensagens unificadas e consistentes sobre computação heterogênea, sua marca de IA está finalmente ganhando força entre jornalistas e entusiastas de tecnologia.
Desmistificando Redes Neurais: Uma pilha mundana de álgebra linear
Para desembaraçar muitos jargões que encontraremos mais adiante neste artigo, precisamos de uma breve introdução sobre o que é uma rede neural e o que você precisa para torná-lo mais rápido. Quero abordar brevemente alguns dos fundamentos matemáticos das redes neurais, evitando tanto jargão e notação quanto possível. O objetivo desta seção é simplesmente identificar o que uma rede neural está fazendo, fundamentalmente: as operações aritméticas executa, e não a base teórica que justifica tais operações (isso é muito mais complicado!). Sinta-se à vontade para prosseguir para a próxima seção se quiser ir direto para as atualizações do Qualcomm AI Engine.
“A matemática vetorial é a base do aprendizado profundo.” – Travis Lanier, diretor sênior de gerenciamento de produtos da Qualcomm no Snapdragon Tech Summit 2017
Abaixo você encontrará um diagrama de rede neural feedforward totalmente conectado muito típico. Na realidade, o diagrama faz com que todo o processo pareça um pouco mais complicado do que é (pelo menos até você se acostumar). Calcularemos um passe direto, que é, em última análise, o que uma rede faz sempre que produz um sinal. inferência, um termo que também encontraremos mais adiante neste artigo. No momento nos preocuparemos apenas com a máquina e suas peças, com breves explicações de cada componente.
Uma rede neural consiste em sequências camadas, cada um composto por vários "neurônios" (representados como círculos no diagrama) conectados por pesos (representado como linhas no diagrama). Em termos gerais, existem três tipos de camadas: a camada de entrada, que recebe a entrada bruta; camadas ocultas, que calcula operações matemáticas da camada anterior, e o camada de saída, que fornece as previsões finais. Neste caso, temos apenas uma camada oculta, com três unidades ocultas. O entrada consiste em um vetor, matriz ou lista de números de uma dimensão ou comprimento específico. No exemplo, teremos uma entrada bidimensional, digamos [1.0, -1.0]. Aqui o saída da rede consiste em um número escalar ou único (não uma lista). Cada unidade oculta está associada a um conjunto de pesos e um termo de preconceito, mostrado ao lado e abaixo de cada nó. Para calcular o soma ponderada saída de uma unidade, cada peso é multiplicado por cada entrada correspondente e então os produtos são somados. Então, simplesmente adicionaremos o termo de polarização a essa soma de produtos, resultando na saída do neurônio. Por exemplo, com a nossa contribuição de [1.0,-1.0], a primeira unidade oculta terá uma saída de 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Simples, certo?
O próximo passo no diagrama representa uma função de ativação, e é o que nos permitirá produzir o vetor de saída de cada camada oculta. No nosso caso, usaremos o método muito popular e extremamente simples unidade linear retificada ou ReLU, que pegará um número de entrada e produzirá (i) zero, se esse número for negativo ou zero (ii) o próprio número de entrada, se o número for positivo. Por exemplo, ReLU(-0,1) = 0, mas ReLU(0,1) = 0,1. Seguindo o exemplo de nossa contribuição como propaga através dessa primeira unidade oculta, a saída de 1,1 que calculamos seria passada para a função de ativação, produzindo ReLU(1,1)=1,1. A camada de saída, neste exemplo, funcionará exatamente como uma unidade oculta: ela multiplicará as saídas das unidades ocultas pelos seus pesos e, em seguida, adicionará seu termo de polarização de 0.2. A última função de ativação, a função de passo, transformará entradas positivas em 1 e valores negativos em 0. Sabendo como funciona cada uma das operações na rede, podemos escrever o cálculo completo da nossa inferência da seguinte forma:
Isso é tudo que existe para o nosso cálculo de rede neural feedforward. Como você pode ver, o as operações consistem quase inteiramente em produtos e somas de números. Nossa função de ativação ReLU(x) também pode ser implementado facilmente, por exemplo, simplesmente chamando máximo (x, 0), de modo que retorne x sempre que a entrada for maior que 0, mas caso contrário, retorne 0. Observe que passo (x) pode ser calculado de forma semelhante. Existem muitas funções de ativação mais complicadas, como a função sigmoidal ou o tangente hiperbólica, envolvendo diferentes cálculos internos e mais adequados para diferentes propósitos. Outra coisa que você já pode começar a notar é que também pode executar os cálculos das três unidades ocultas e suas aplicações ReLU, em paralelo, pois seus valores não são necessários ao mesmo tempo até calcularmos sua soma ponderada no nó de saída.
Mas não precisamos parar por aí. Acima, você pode ver o mesmo cálculo, mas desta vez representado com operações de multiplicação de matrizes e vetores. Para chegar a esta representação, “aumentamos” nosso vetor de entrada adicionando 1,0 a ele (matiz mais claro), de modo que quando colocamos nosso pesos e nossa tendência (matiz mais claro) na matriz conforme mostrado acima, a multiplicação resultante produz a mesma unidade oculta saídas. Então, podemos aplicar ReLU no vetor de saída, elemento a elemento, e então “aumentar” a saída ReLU para multiplicá-la pelos pesos e tendências de nossa camada de saída. Essa representação simplifica bastante a notação, pois os parâmetros (pesos e desvios) de uma camada oculta inteira podem ser agrupados em uma única variável. Mas o mais importante para nós é que deixa claro que os cálculos internos da rede são essencialmente multiplicação de matrizes e vetores ou produtos escalares. Dado como o tamanho desses vetores e matrizes é dimensionado com a dimensionalidade de nossas entradas e o número de parâmetros em nossa rede, a maior parte do tempo de execução será gasta fazendo esse tipo de cálculo. Um monte de álgebra linear!
Nosso exemplo de brinquedo é, claro, muito escopo limitado. Na prática, os modelos modernos de aprendizagem profunda podem ter dezenas, senão centenas de camadas ocultas e milhões de parâmetros associados. Em vez do nosso exemplo de entrada vetorial bidimensional, eles podem considerar vetores com milhares de entradas, em uma variedade de formas, como matrizes (como imagens de canal único) ou tensores (RGB de três canais imagens). Também não há nada que impeça a nossa representação matricial de receber vários vetores de entrada de uma só vez, adicionando linhas à nossa entrada original. As redes neurais também podem ser “conectadas” de maneira diferente da nossa rede neural feedforward ou executar diferentes funções de ativação. Existe um vasto zoológico de arquiteturas e técnicas de rede, mas no final, elas majoritariamente dividimos nas mesmas operações aritméticas paralelas que encontramos em nosso exemplo do brinquedo, só que em uma escala muito maior.
Exemplo visual de camadas de convolução operando em um tensor. (Crédito da imagem: Rumo à ciência de dados)
Por exemplo, o popular redes neurais convolucionais (CNNs) sobre os quais você provavelmente já leu não estão “totalmente conectados” como nossa rede simulada. Os “pesos” ou parâmetros de seus valores ocultos camadas convolucionais pode ser pensado como uma espécie de filtro, uma janela deslizante aplicada sequencialmente a pequenos trechos de uma entrada, como mostrado acima - essa "convolução" é na verdade apenas um produto escalar deslizante! Este procedimento resulta no que muitas vezes é chamado de mapa de recursos. As camadas de pooling reduzem o tamanho de uma entrada ou saída de uma camada convolucional, calculando o valor máximo ou médio de pequenos trechos da imagem. O resto da rede geralmente consiste em camadas totalmente conectadas, como as do nosso exemplo, e funções de ativação como ReLU. Isso é frequentemente usado para extração de recursos em imagens onde os mapas de recursos das primeiras camadas convolucionais podem "detectar" padrões como linhas ou bordas, e camadas posteriores podem detectar recursos mais complicados, como faces ou complexos formas.
Tudo o que foi dito é estritamente limitado à inferência, ou avaliar uma rede neural após seus parâmetros terem sido encontrados por meio de treinamento que é um procedimento muito mais complicado. E, novamente, excluímos muitas explicações. Na realidade, cada um dos componentes da rede está incluído com um propósito. Por exemplo, aqueles de vocês que estudaram álgebra linear podem facilmente observar que sem o funções de ativação não lineares, nossa rede simplifica para um modelo linear com previsões muito limitadas capacidade.
Um mecanismo de IA atualizado no Snapdragon 865 – um resumo das melhorias
Com esta compreensão prática dos componentes de uma rede neural e suas operações matemáticas, podemos começar a entender exatamente por que a aceleração de hardware é tão importante. Na última seção, podemos observar que a paralelização é vital para agilizar a rede, visto que nos permite, por exemplo, calcular vários produtos escalares paralelos correspondentes a cada neurônio ativação. Cada um desses produtos escalares é constituído por operações de multiplicação e adição de números, geralmente com precisão de 8 bits no caso de aplicações móveis, que devem acontecer o mais rápido possível. O AI Engine oferece vários componentes para descarregar essas tarefas, dependendo das considerações de desempenho e eficiência de energia do desenvolvedor.
Um diagrama de uma CNN para o popular conjunto de dados MNIST, mostrado no palco do Snapdragon Summit deste ano. A unidade de processamento vetorial é uma boa opção para camadas totalmente conectadas, como em nosso exemplo simulado. Enquanto isso, o processador tensor lida com as camadas convolucionais e de pooling que processam múltiplos deslizamentos. kernels em paralelo, como no diagrama acima, e cada camada convolucional pode gerar muitos recursos separados mapas.
Primeiro, vejamos a GPU, da qual costumamos falar no contexto de jogos 3D. O mercado consumidor de videogames tem estimulado o desenvolvimento de hardware de processamento gráfico há décadas, mas por que as GPUs são tão importantes para as redes neurais? Para começar, eles analisam listas enormes de coordenadas 3D de vértices poligonais de uma só vez para acompanhar o estado mundial do jogo. A GPU também deve realizar operações gigantescas de multiplicação de matrizes para converter (ou mapear) esses dados 3D. coordenadas em coordenadas planas 2D na tela e também manipula as informações de cores dos pixels em paralelo. Para completar, eles oferecem alta largura de banda de memória para lidar com os enormes buffers de memória para os bitmaps de textura sobrepostos à geometria do jogo. Suas vantagens em paralelização, largura de banda de memória e recursos de álgebra linear resultantes atendem aos requisitos de desempenho das redes neurais.
A linha de GPU Adreno tem assim um grande papel a desempenhar no Qualcomm AI Engine, e no palco, a Qualcomm afirmou que este componente atualizado no Snapdragon 865 permite o dobro de recursos de ponto flutuante e o dobro do número de TOPS em comparação com a geração anterior, o que é surpreendente, visto que eles registraram apenas um aumento de desempenho de 25% na renderização gráfica. Ainda assim, para este lançamento, a empresa possui um Aumento de 50% no número de unidades lógicas aritméticas (ALUs), embora, como de costume, eles não tenham divulgado suas frequências de GPU. A Qualcomm também listou precisão mista instruções, que é exatamente o que parece: precisão numérica diferente entre operações em um único método computacional.
O Hexagon 698 DSP é onde vemos uma grande parte dos ganhos de desempenho oferecidos pelo Snapdragon 865. Este ano, a empresa não comunicou melhorias nas extensões vetoriais de seus DSP (cujo desempenho quadruplicou em relação aos 855 do ano passado), nem em suas unidades escalares. No entanto, eles observam que para o Tensor Accelerator deste bloco, eles alcançaram quatro vezes os TOPs em comparação com a versão introduzida no ano passado no Hexagon 695 DSP, ao mesmo tempo que pode oferecer 35% melhor eficiência energética. Isso é importante, considerando a prevalência de arquiteturas de redes neurais convolucionais em casos de uso modernos de IA, que vão desde a detecção de objetos de imagem até o reconhecimento automático de fala. Conforme explicado acima, a operação de convolução nessas redes produz uma matriz 2D de saídas matriciais para cada filtro, o que significa que quando empilhados juntos, a saída de uma camada de convolução é uma matriz 3D ou tensor.
A Qualcomm também promoveu seu “novo e único” compressão de largura de banda de aprendizagem profunda técnica, que aparentemente pode comprimir dados sem perdas em cerca de 50%, por sua vez, movendo metade dos dados e liberando largura de banda para outras partes do chipset. Ele também deveria economizar energia, reduzindo a taxa de transferência de dados, embora não tenhamos recebido nenhum número e também deva haver um pequeno custo de energia para compactar os dados.
No que diz respeito à largura de banda, o Snapdragon 865 suporta Memória LPDDR5, o que também beneficiará o desempenho da IA, pois aumentará a velocidade com que os recursos e os dados de entrada são transferidos. Além do hardware, o novo da Qualcomm Kit de ferramentas de eficiência de modelo de IA torna fácil a compactação do modelo e a economia de eficiência de energia resultante disponível para os desenvolvedores. As redes neurais geralmente possuem um grande número de parâmetros “redundantes”; por exemplo, eles podem tornar as camadas ocultas mais largas do que o necessário. Um dos recursos do AI Toolkit discutidos no palco é, portanto, compressão de modelo, com dois dos métodos citados sendo decomposição espacial de valores singulares (SVD) e compressão bayesiana, ambos de que efetivamente eliminam a rede neural, livrando-se de nós redundantes e ajustando a estrutura do modelo conforme obrigatório. A outra técnica de compressão de modelo apresentada no palco está relacionada à quantização e envolve a alteração da precisão numérica dos parâmetros de peso e dos cálculos do nó de ativação.
A precisão numérica dos pesos da rede neural refere-se a se os valores numéricos usados para cálculo são armazenados, transferidos e processados como valores de 64, 32, 16 (meia precisão) ou 8 bits. O uso de menor precisão numérica (por exemplo, INT8 versus FP32) reduz o uso geral de memória e as velocidades de transferência de dados, permitindo maior largura de banda e inferências mais rápidas. Muitas das aplicações atuais de aprendizagem profunda mudaram para modelos de precisão de 8 bits para inferência, o que pode parecer surpreendente: uma maior precisão numérica não permitiria previsões mais “precisas” na classificação ou regressão tarefas? Não necessariamente; maior precisão numérica, especialmente durante a inferência, pode ser desperdiçada à medida que as redes neurais são treinadas para lidar com entradas ruidosas ou de qualquer maneira, pequenos distúrbios durante o treinamento, e o erro na representação do bit inferior de um determinado valor (FP) é uniformemente 'aleatório' suficiente. De certa forma, a baixa precisão dos cálculos é tratada pela rede como outra fonte de ruído, e as previsões permanecem utilizáveis. Deixando de lado os explicadores heurísticos, é provável que você acumule uma penalidade de precisão ao quantizar mal um modelo sem levar em conta algumas considerações importantes, razão pela qual muitas pesquisas vão para o assunto
De volta ao Qualcomm AI Toolkit: por meio dele eles oferecem quantização sem dados, permitindo que os modelos sejam quantizados sem ajuste fino de dados ou parâmetros e, ao mesmo tempo, alcançando um desempenho de modelo quase original em várias tarefas. Essencialmente, ele adapta os parâmetros de peso para quantização e corrige o erro de polarização introduzido ao mudar para pesos de precisão mais baixos. Dados os benefícios incorridos pela quantização, automatizar o procedimento sob uma chamada de API simplificaria a produção e implantação do modelo, e a Qualcomm afirma mais de quatro vezes o desempenho por watt ao executar o modelo quantizado.
Mas, novamente, isso não é chocante: modelos de quantização podem oferecer enormes benefícios de largura de banda e armazenamento. A conversão de um modelo para INT8 não apenas proporciona uma redução de 4x na largura de banda, mas também o benefício de cálculos inteiros mais rápidos (dependendo do hardware). É óbvio, então, que abordagens aceleradas por hardware tanto para a quantização quanto para a computação numérica produziriam enormes ganhos de desempenho. Em seu blog, por exemplo, Pete Warden do Google escreveu que uma colaboração entre as equipes da Qualcomm e do Tensorflow permite que modelos de 8 bits rodem até sete vezes mais rápidono DSP HVX do que na CPU. É difícil exagerar o potencial da quantização fácil de usar, especialmente considerando como a Qualcomm se concentrou no desempenho do INT8.
A CPU Kryo baseada em ARM do Snapdragon 865 ainda é um componente importante do mecanismo de IA. Embora a aceleração de hardware discutida nos parágrafos acima seja preferível, às vezes não é possível evitar aplicativos que não aproveitam adequadamente esses bloqueios, resultando em CPU cair pra trás. No passado, o ARM introduziu conjuntos de instruções específicos destinados a acelerar cálculos baseados em matrizes e vetores. Nos processadores ARMv7, vimos a introdução do ARM NEON, uma extensão da arquitetura SIMD que permite instruções do tipo DSP. E com a microarquitetura ARMv8.4-A, vimos a introdução de uma instrução específica para produtos escalares.
Todos esses ganhos de desempenho publicados estão relacionados a muitas das cargas de trabalho descritas na seção anterior, mas também vale a pena ter em mente que essas atualizações do Snapdragon 865 são apenas o mais recente melhorias nos recursos de IA da Qualcomm. Em 2017, documentamos a triplicação das capacidades de IA com o Hexagon 685 DSP e outras atualizações de chipset. No ano passado, eles introduziram seu acelerador tensor e suporte integrado para funções não lineares (como o já mencionado ReLU!) No nível do hardware. Eles também duplicaram o número de aceleradores vetoriais e melhoraram o desempenho da unidade de processamento escalar em 20%. Combinando tudo isso com melhorias no lado da CPU, como aquelas operações de produto escalar mais rápidas, cortesia do ARM, e as ALUs adicionais na GPU, a Qualcomm finalmente triplicado recursos brutos de IA também.
Ganhos práticos e casos de uso expandidos
Todas essas atualizações resultaram em cinco vezes mais recursos de IA no Snapdragon 865 em comparação com apenas dois anos atrás, mas talvez o mais importante, as melhorias também vieram com melhor desempenho por miliwatt, uma métrica crítica para dispositivos móveis dispositivos. No Snapdragon Summit 2019, a Qualcomm nos deu alguns benchmarks comparando seu AI Engine com dois concorrentes em várias redes de classificação. Esses números parecem ser coletados usando AIMark, um aplicativo de benchmarking de plataforma cruzada, que permite comparações com os processadores da série A da Apple e HiSilicon da Huawei. A Qualcomm afirma que esses resultados utilizam todo o AI Engine e teremos que esperar até mais benchmarking completo para desembaraçar adequadamente o efeito de cada componente e determinar como esses testes foram conduzido. Por exemplo, os resultados da empresa B indicam fallback de CPU? Pelo que sei, o AIMark atualmente não aproveita o NPU do Kirin 990 em nossas unidades Mate 30 Pro, por exemplo. Mas ele suporta o Snapdragon Neural Processing Engine, então certamente aproveitará as vantagens do Qualcomm AI Engine; dado que se trata de testes internos, não está explicitamente claro se o benchmark está utilizando adequadamente as bibliotecas ou SDK certos para seus concorrentes.
Também deve ser dito que a Qualcomm está efetivamente comparando as capacidades de processamento de IA do Snapdragon 865 com chipsets anunciados ou lançados anteriormente. É muito provável que seus concorrentes tragam melhorias de desempenho com impacto semelhante no próximo ciclo, e se isso acontecer Se for esse o caso, a Qualcomm só manterá a coroa por cerca de meio ano a partir do momento em que os dispositivos Snapdragon 865 chegarem às prateleiras. Dito isto, estes ainda são indicativos dos tipos de solavancos que podemos esperar do Snapdragon 865. A Qualcomm geralmente tem sido muito precisa ao comunicar melhorias de desempenho e resultados de benchmark de lançamentos futuros.
Todas as redes apresentadas nesses benchmarks classificam imagens de bancos de dados como ImageNet, recebendo-as como entradas e gerando uma entre centenas de categorias. Novamente, eles contam com os mesmos tipos de operações que descrevemos na segunda seção, embora suas arquiteturas sejam bastante mais complicados do que esses exemplos e foram considerados soluções de última geração no momento da publicação. Na melhor das hipóteses, o seu concorrente mais próximo fornece menos de metade do número de inferências por segundo.
Em termos de consumo de energia, a Qualcomm ofereceu inferências por watt para mostrar a quantidade de processamento de IA possível em uma determinada quantidade de energia. Na melhor das hipóteses (MobileNet SSD), o Snapdragon AI Engine pode oferecer o dobro do número de inferências com o mesmo orçamento de energia.
A energia é particularmente importante para dispositivos móveis. Pense, por exemplo, em um filtro Snapchat baseado em rede neural. Realisticamente, o pipeline de visão computacional que extrai informações faciais e aplica uma máscara ou entrada a transformação só precisa ser executada a uma taxa de 30 ou 60 conclusões por segundo para atingir uma fluidez experiência. Aumentar o desempenho bruto da IA permitiria obter entradas de maior resolução e produzir filtros com melhor aparência, mas pode também é simplesmente preferível optar pela resolução HD para uploads mais rápidos e diminuir o consumo de energia e o afogamento térmico. Em muitas aplicações, “mais rápido” não é necessariamente “melhor”, e então é possível colher os benefícios de uma maior eficiência energética.
Durante o segundo dia do Snapdragon Summit, o Diretor Sênior de Engenharia do Snapchat, Yurii Monastyrshyn, subiu ao palco para mostrar como seus mais recentes filtros baseados em aprendizagem profunda são bastante acelerados pelo Hexagon Direct NN usando o Hexagon 695 DSP no Snapdragon 865.
Além disso, à medida que os desenvolvedores obtêm acesso a implementações de redes neurais mais fáceis e mais aplicativos começarem a empregar técnicas de IA, os casos de uso de simultaneidade terão mais destaque, pois o smartphone terá que lidar com vários pipelines de IA paralelos de uma só vez (seja para um único aplicativo processando sinais de entrada de várias fontes ou para muitos aplicativos executados separadamente no dispositivo). Embora vejamos ganhos respeitáveis de eficiência de energia em DSP, GPU e CPU de computação, o Qualcomm Sensing Hub lida com casos de uso sempre ativos para ouvir palavras-gatilho com consumo de energia muito baixo. Ele permite monitorar sinais de áudio, vídeo e sensores com menos de 1 mA de corrente, permitindo que o dispositivo detecte sinais sonoros específicos (como o choro de um bebê), além das palavras-chave familiares do assistente digital. Por falar nisso, o Snapdragon 865 permite detectar não apenas a palavra-chave, mas também quem a fala, para identificar um usuário autorizado e agir de acordo.
Mais IA em dispositivos Edge
Essas melhorias podem, em última análise, se traduzir em benefícios tangíveis para a experiência do usuário. Serviços que envolvem tradução, reconhecimento e rotulagem de objetos, previsões de uso ou recomendações de itens, a compreensão da linguagem natural, a análise da fala e assim por diante terão o benefício de operar mais rapidamente e consumir menos poder. Ter um orçamento de computação mais alto também permite a criação de novos casos de uso e experiências, além de mover processos que costumavam ocorrer na nuvem para o seu dispositivo. Embora o termo IA tenha sido usado de forma duvidosa, enganosa e até mesmo errônea no passado (até mesmo por OEMs), muitos dos serviços que você desfruta hoje dependem, em última análise, de algoritmos de aprendizado de máquina de alguma forma ou outro.
Mas, além da Qualcomm, outros fabricantes de chipsets também têm iterado e aprimorado rapidamente nessa frente. Por exemplo, o 990 5G trouxe um design de núcleo 2+1 NPU, resultando em até 2,5 vezes o desempenho do Kirin 980 e duas vezes o do Apple A12. Quando o processador foi anunciado, ele oferecia até o dobro de frames (inferências) por segundo do Snapdragon 855 na INT8 MobileNet, o que é difícil de conciliar com os resultados fornecidos pela Qualcomm. O Apple A13 Bionic, por outro lado, supostamente ofereceu uma multiplicação de matrizes seis vezes mais rápida em relação ao seu antecessor e melhorou o design do seu motor neural de oito núcleos. Teremos que esperar até que possamos testar adequadamente o Snapdragon 865 em dispositivos comerciais contra seus concorrentes atuais e futuros, mas é está claro que a concorrência neste espaço nunca fica parada, já que as três empresas têm investido muitos recursos para melhorar sua IA desempenho.