Processadores, núcleos, threads, instruções

CPUs são unidades centrais de processamento, os processadores comuns com os quais nos acostumamos e placa mae ryzen. Eles são tipicamente multi-core, mesmo no mercado de desktop (geralmente de 2 a 10 núcleos em CPUs Core i3-i9 Intel modernas, mas até 18 núcleos / 36 threads em CPUs Intel de ponta como i9-7980XE, i9-9980XE ou i9–10980XE e até 32 núcleos / 64 threads no AMD Ryzen Threadripper).

No mercado de servidores existem Intel Xeon / AMD EPYC, geralmente com mais núcleos (56 núcleos / 112 threads em Intel Xeon Platinum 9282 ou 64 núcleos / 128 threads em AMD EPYC 7742) placa mae gamer e alguns outros recursos úteis (suportando mais RAM, multi- configurações do processador, ECC, etc.).

CPUs NÃO são os cavalos de batalha atuais para DL. As GPUs têm núcleos muito mais especializados (até 5120 nas GPUs NVIDIA Volta V100 mais recentes) e as operações de matriz (que a DL é principalmente sobre o nível baixo) são paralelizadas muito melhor nas GPUs.

Existem algumas tentativas de usar clusters de CPUs para DL (como BigDL da Intel), otimizando bibliotecas DL para CPUs (Caffe con Troll) e fazer outros hacks (consulte “Melhorando a velocidade de redes neurais em CPUs”), mas não parece muito promissor no momento e só pode ser útil se você já tiver um cluster de máquinas sem GPUs como a placa mae h61.

Entre os resultados interessantes, está um artigo de novembro de 2017 chamado “ImageNet Training in Minutes” que concluiu o treinamento ImageNet de 100 épocas com AlexNet em 11 minutos em 1.024 CPUs. Há um artigo da Intel “Processadores Intel para treinamento de aprendizado profundo” explorando os principais fatores que contribuem para a velocidade recorde, incluindo 1) A capacidade de computação e memória dos processadores Intel Xeon escaláveis; 2) Otimizações de software na Intel Math Kernel Library para Deep Neural Networks (Intel MKL-DNN) e nos populares frameworks de aprendizado profundo; 3) Avanços recentes em algoritmos de treinamento distribuído para cargas de trabalho de aprendizado profundo supervisionado.

Em julho de 2017, a Intel lançou a família de processadores escaláveis ​​Intel Xeon baseada na tecnologia de processo de 14 nm. Os processadores escaláveis ​​Intel Xeon podem suportar até 28 núcleos físicos (56 threads) por soquete (até 8 soquetes) na frequência base do processador de 2,50 GHz e frequência turbo máxima de 3,80 GHz, e seis canais de memória com até 1,5 TB de 2.666 MHz DDR4 memória. O preço recomendado para o cliente para o processador Xeon Platinum 8180 (28 núcleos) é próximo a US $ 1.0009.

A Intel introduziu as instruções AVX-512, disponíveis nas CPUs Xeon Phi (veja abaixo) e Skylake-X mais recentes, incluindo a série Core-X (excluindo o Core i5–7640X e Core i7–7740X), bem como o novo Xeon Escalável Família de processadores e Xeon D-2100 Embedded Series. Veja a lista de CPUs com AVX-512 aqui.

Intel AVX-512 é um conjunto de novas instruções que podem acelerar o desempenho para cargas de trabalho computacionais pesadas, incluindo aprendizado profundo exceto a placa mae h61 barata. Aqui está um artigo de janeiro de 2018 com detalhes sobre como as instruções principais Fused Multiply Add (FMA) de 512 bits, parte do AVX-512, aceleram o aprendizado profundo, permitindo operações de menor precisão (mais sobre cálculos de menor precisão na próxima parte da série dedicada a GPUs).

Atualização de 26 de setembro de 2019: Entre as instruções interessantes no AVX-512 está o novo conjunto de instruções Intel AVX-512, chamado Vector Neural Network Instructions (AVX512 VNNI), projetado para acelerar algoritmos baseados em rede neural convolucional. Existem quatro instruções para multiplicação e adição de inteiros presentes nas CPUs escaláveis ​​Intel Xeon desde 2019.

Esse recurso VNNI junto com o formato de ponto flutuante Brain são partes do que a Intel está chamando de DL Boost (deep learning boost), um conjunto de tecnologias projetadas para aceleração de inferência.
DL Boost não é limitado pela família Xeon com placa mae galax. Essa tecnologia estará presente nos processadores Ice Lake da 10ª geração do ano 2019+, incluindo Core-i7, i5 e até mesmo i3.

Aqui está uma comparação recente de uma CPU Intel com DL Boost e NVIDIA Turing GPU Titan RTX executada em diferentes tarefas de IA.
Mais detalhes técnicos nas instruções VNNI.

Mais sobre Intel DL Boost.

AMD oferece suporte a AVX-256, mas não oferece suporte a vetores maiores. Mais detalhes sobre as instruções do vetor AMD aqui e aqui.
Bibliotecas, etc

A Intel também fornece um Deep Learning Inference Engine, uma parte do Deep Learning Deployment Toolkit. A versão atual do Inference Engine suporta a inferência de várias redes de classificação de imagens, incluindo as famílias de redes AlexNet, GoogLeNet, VGG e ResNet, redes totalmente convolucionais como FCN8 usadas para segmentação de imagens e redes de detecção de objetos como Faster R-CNN. Parece que nenhum RNN é compatível. O mecanismo é compatível com Caffe, TensorFlow, MXNet.

A versão atual do Inference Engine suporta inferência em Xeon com AVX2 e AVX512, Core Processors com AVX2, Atom Processors com SSE, Intel HD Graphics, placas discretas Arria A10 FPGA. O Inference Engine pode inferir modelos no formato FP16 e FP32 (mas o suporte depende da configuração).

 

A Intel também fornece receitas para otimizações em nível de sistema (visando processadores Xeon e Xeon Phi) permitindo, sem uma única linha de mudança de código na estrutura, aumentar o desempenho do treinamento de aprendizado profundo em até 2X e inferência em até 2.7X no topo das otimizações de software atuais disponíveis no TensorFlow e Caffe. Mais popular nele.

E aqui está uma apresentação da Intel de março de 2017, chamada “Intel e ML”.
Atualização de 26 de setembro de 2019: a tecnologia Intel DL Boost pode ser usada com estruturas DL modernas para converter um modelo FP32 pré-treinado em um modelo INT8 quantizado. Aqui você pode encontrar links relacionados ao TensorFlow, PyTorch, MXNet e outras estruturas.

Atualização de 19 de janeiro de 2020: no final de 2019, há um conjunto de bibliotecas para DL na CPU:
BigDL: biblioteca de aprendizado profundo distribuída para Apache Spark

DNNL 1.2.0, Biblioteca de Rede Neural Profunda. A biblioteca inclui blocos de construção básicos para redes neurais otimizadas para processadores da arquitetura Intel e gráficos do processador Intel.
OpenVINO Toolkit para visão computacional baseada em CNNs.

PlaidML, compilador de tensor avançado e portátil para permitir o aprendizado profundo em laptops, dispositivos incorporados ou outros dispositivos.
Suporta Keras, ONNX e nGraph.
Intel Caffe (otimizado para Xeon).

Caffe Con Troll (projeto de pesquisa, com o último commit em 2016) parece estar morto.
O Intel DL Boost pode ser usado em muitas estruturas populares:

TensorFlow, PyTorch, MXNet, PaddlePaddle, Intel Caffe.
nGraph, um compilador de gráfico de aprendizado profundo de ponta a ponta para inferência e treinamento com extensa estrutura e suporte de hardware.

Com uma visão mais ampla, os compiladores de gráfico se tornaram o tema quente agora, bot nos ecossistemas TensorFlow e PyTorch. Observe especialmente o projeto MLIR de Chris Lattner (o autor de LLVM e Swift, agora na equipe TensorFlow).

Compiladores de gráficos no ecossistema TF: visão mais ampla
Tendo em mente que os sistemas DL atuais são construídos principalmente usando GPUs (consulte a próxima seção), a CPU com placa mae 1155 ainda é uma parte indispensável deles, e os requisitos para a CPU são alterados para um melhor ajuste a tais sistemas.

O número de núcleos não é mais o parâmetro principal, mas você ainda precisa de #Cores suficientes, que é pelo menos tanto quanto #GPUs você tem. Entre outras características importantes estão as pistas #PCIe e a velocidade da memória.

PCI Express
Você precisa transferir dados entre a memória do host da CPU e a memória da GPU. Na maioria dos sistemas x86, isso é feito usando barramento PCI Express (PCIe).

Existem diferentes revisões do PCIe, v3 é a mais comum agora.
O PCIe v.3 permite 985 MB / s por 1 via, portanto, 15,75 GB / s para links x16.
PCIe v.4 é duas vezes mais rápido, então 31,51 GB / s para x16 (com suporte no chipset X570 para placas AMD e Radeon)

O PCIe v.5 é duas vezes mais rápido novamente (as especificações são lançadas, nenhum produto é esperado antes de 2020), portanto, 63 GB / s para x16.

https://devblogs.nvidia.com/nvlink-pascal-stacked-memory-feeding-appetite-big-data/
E sobre o número de pistas PCI Express, a placa GPU típica funciona no modo x16, mas pode funcionar no modo x8 ou x4 também em velocidade mais baixa.

Isso significa que, para oferecer suporte a várias placas GPU na velocidade total, seu processador deve oferecer suporte a um número proporcional de pistas PCIe. Por exemplo, se você estiver usando 2 placas NVIDIA GTX 1080 Ti, ambas no modo x16, então seu sistema deve suportar pelo menos 32 pistas PCIe, melhor mais (porque você tem o chipset e periferia, como SSD M.2, usando PCIe também).

A ressalva aqui é que muitos processadores Intel suportam menos do que esse número de pistas PCIe (28 para Core i7-7820X ou mesmo 16 como no caso do processador Core i7-7700K ou i7-8700K). Nesse caso, algumas de suas GPUs funcionam no modo x8, diminuindo assim a velocidade de troca entre o sistema e a memória da GPU. Por isso tem cuidado.

Uma boa opção aqui poderia ser um processador Core i7–6850K antigo com 40 pistas PCIe ou um novo AMD Ryzen Threadripper com até 64 pistas PCIe. Algumas pessoas preferem Xeons ou olhando para EPYCs (128 pistas), e eles provavelmente serão a principal opção se você construir o sistema com, digamos, 4+ GPUs (e uma placa-mãe ATX típica não ajuda aqui também, mas existem soluções especiais).
Como um breve resumo:

O processador de desktop principal da Intel típico tem 16 pistas PCIe (por exemplo, processador i7–7700K, i7–8700K ou mesmo i9–9900K).

O processador desktop de última geração (HEDT) tem 28 a 44 pistas (por exemplo, i7–7820X tem 28, em vez do antigo i7–6850K tem 40, i9–9980XE tem 44, os próximos i9–10940X e superior terão 48).
Os Xeons têm até 64 pistas (PCIe v.3).

AMD Ryzen Threadripper tem 64 pistas PCIe, EPYC tem 128 pistas (PCIe v.4)
Cuidado: a Intel às vezes usa “pistas da plataforma PCIe”, é CPU + PCH, mas as PCH têm um uplink compartilhado!

Mais sobre as pistas PCIe.

Um número que descobri em relação aos modos x8 / x16 é que, no caso de comutação x16 → x8, “a diminuição do desempenho é muito inferior a 10% para a maioria das tarefas / redes”. [fonte]

Se você encontrar qualquer outro benchmark abrangente sobre os modos x8 / x16, me avise.

Memória

Outra dimensão importante é a configuração da memória. Inclui a velocidade da memória (ou seja, DDR4-3200 pode ser duas vezes mais rápido que DDR4-1600) e o suporte ao modo multicanal (por exemplo, o conhecido i7-7700K suporta apenas 2 canais de memória no máximo, enquanto i7-6850K ou O AMD Ryzen Threadripper suporta 4 canais, então o último pode ser duas vezes mais rápido trabalhando com a mesma memória (veja a lista de processadores que suportam o modo quad-channel). Seis e mais modos de canal estão chegando.

Seria interessante avaliar a configuração da memória também, então deixe-me saber se você fez ou encontrou um benchmark abrangente nas tarefas de ML / DL da vida real.

Como referência, taxas de transferência de dados de canal único DDR4 (multiplique por 2 ou 4 para modos de dois ou quatro canais) com PCIe v.3 / v.4 para comparação:

PCIe v.3 x4: 3,94 GB / s
PCIe v.3 x8: 7,88 GB / s
DDR4 1600 : 12,8 GB / s
DDR4 1866 : 14,93 GB / s
PCIe v.3 x16: 15,75 GB / s
PCIe v.4 x8: 15,75 GB / s
DDR4 2133 : 17 GB / s
DDR4 2400 : 19,2 GB / s
DDR4 2666 : 21,3 GB / s
DDR4 3200 : 25,6 GB / s
PCIe v.4 x16: 31,51 GB / s

Aqui está uma lista mais abrangente para muitos transportes e ônibus diferentes.

Existem muitos manuais sobre como montar sua própria máquina DL, encontre um deles se quiser mais detalhes sobre as escolhas de hardware específicas.

Alguns planos recentes da Intel sobre as próximas plataformas de CPU vazaram. Eles são interessantes, mas não parecem uma virada de jogo em relação ao ML / DL. No entanto, a Intel atua em quase todos os outros nichos interessantes e voltaremos a ele várias vezes. Começando agora 🙂
Xeon Phi

UPD: Parece estar morto agora. Portanto, o texto abaixo é para história:
Ainda há tentativas de fazer processadores com muitos núcleos como o Intel Xeon Phi com até 72 núcleos. Um dos mais poderosos processadores Phi existentes, o 7290F é um processador de 72 núcleos (288 threads, 4 threads por núcleo!) Com desempenho máximo de 3456 GFLOPS DP = FP64 (provavelmente 2×3456 SP = FP32 GFLOPS) (e $ 3368,00 preço recomendado, com 260W TDP) que é aproximadamente comparável ao NVIDIA GTX 1060 (1070 Ti se os cálculos FP32–64 estiverem corretos) por desempenho máximo, mas não o preço e potência ($ 350-500 dependendo do tamanho da memória 3 ou 6 Gb, 120 W TDP para 1060; $ 800/180 W para 1070 Ti). No entanto, para comparar de forma significativa esses diferentes processadores, temos que fazer um benchmark em tarefas de ML / DL da vida real.

Knights Hill foi cancelado e a Intel tem como objetivo a computação exascale. “Um passo que estamos tomando é substituir um dos futuros processadores Intel Xeon Phi (codinome Knights Hill) por uma nova plataforma e uma nova microarquitetura projetada especificamente para exascale”, disse Trish Damkroger, representante do grupo de data centers .

A Intel anunciou uma série Knights Mill especializada em aprendizagem profunda e há um processador 7295 de 72 núcleos. Ele usa o soquete LGA3647, e não há mais versões PCI Express. O desempenho e os preços ainda são desconhecidos.

Parece que a linha Xeon Phi será sucedida por uma família de chips de codinome Knights Cove. Eles terão 38 ou 44 núcleos cada, 32 GB de memória HBM2 integrada e serão baseados no Ice Lake Scalable Xeons com previsão de chegada em 2019 ou 2020. A parte de 44 núcleos pode muito bem ser dois chips de 22 núcleos combinados.
Knights Cove será sucedido por chips de codinome Ice Age e Knights Run, que são considerados os processadores que irão para a máquina Aurora de um exaflops.

Mas é muito longe de agora.
Em suma, Xeon Phi não parece ser uma opção útil para DL.
BRAÇO
Os servidores ARM estão chegando.

UPD: este projeto específico foi interrompido

A Qualcomm fabricou e está enviando um processador de servidor ARM para aplicativos em nuvem chamado Centriq 2400. Ele tem até 48 núcleos de thread único rodando a 2,2 GHz, chegando a 2,6 GHz. É apenas de 64 bits: não há modo de 32 bits. Aqui estão mais alguns detalhes técnicos.

“CPUs anteriores compatíveis com ARM falharam, notadamente as peças Calxeda, porque, basicamente, eram de 32 bits. O Centriq da Qualcomm é, crucialmente, compatível com 64 bits e ARMv8-A, multicore, chega a apenas 120 W, tem caches gordos e interfaces de IO e memória amigáveis ​​para servidor e é voltado para cargas de trabalho de data center ”, disse TheRegister .

Há uma especificação do servidor Qualcomm Centriq 2400 Motherboard enviada para o Open Compute Project.
A Qualcomm já está falando sobre o que vem por aí. Qualcomm Firetail será o Centriq de próxima geração e será construído em torno do núcleo Saphira.

Outra startup chamada Ampere Computing acabou de sair do modo stealth em fevereiro de 2018, anunciando que estará entregando um processador ARM de 64 bits para o mercado de hiperescala.

Existem muitos outros esforços também. Provavelmente veremos muito mais servidores ARM nas nuvens públicas.
Novamente, não se trata de DL por enquanto, mas quem sabe. A Qualcomm está adicionando recursos de ML / DL a seus próprios chips móveis (mais sobre isso mais tarde em uma parte separada da série), talvez quando eles adicionarem recursos semelhantes às soluções de servidor.

(Atualização de 22 de novembro de 2019) A Qualcomm se livrou de sua divisão de chips para servidores que era responsável pela construção do Centriq 2400.

A Centriq IP da Qualcomm continuará a viver sob a marca Thang Long 4800 usada pela HXT, uma joint venture estabelecida entre a província chinesa de Guizhou e a Qualcomm, com 55 por cento da joint venture de propriedade da província de Guizhou.

O Thang Long 4800 parece ser quase idêntico ao Centriq 2400, com uma exceção. O chip usa um módulo de criptografia diferente que visa cumprir os regulamentos de criptografia da China.
(Atualização de 19 de janeiro de 2020) No entanto, existem muitos outros movimentos no universo ARM.
Computadores de placa única: Raspberry Pi, parte do Jetson Nano e Google Coral Dev Board.

Celular: Qualcomm, Apple A11, etc

Servidor: Marvell ThunderX, Ampere eMAG, instância Amazon A1, etc; A NVIDIA anunciou servidores baseados em Arm acelerados por GPU.
Laptops: Microsoft Surface Pro X
ARM também tem ML / AI Ethos NPU e GPU de Mali
Alguns links por exemplo:
ARM anuncia plataforma Neoverse N1 (escala até 128 núcleos)
Microprocessadores de servidor ARM Ampere eMAG (até 32 núcleos, até 3,3 GHz)
Processadores ARM Marvell ThunderX (até 48 núcleos, até 2,5 GHz).
Eles suportam GPU NVIDIA.
Processador Amazon Graviton ARM (16 núcleos, 2,3 GHz)
CPU Huawei Kunpeng 920 ARM Server (64 núcleos, 2,6 GHz)
POWER9
Existe arquitetura POWER9 da IBM. Parece que o POWER9 é direcionado para ser um melhor ajuste com GPU / FPGA / qualquer que seja, e isso parece razoável.

“Com o POWER9, estamos mudando para uma nova era fora do chip, com aceleradores avançados como GPUs e FPGAs conduzindo cargas de trabalho modernas, incluindo IA. Vemos que a era do microprocessador on-chip – com processamento integrado em um chip – está morrendo, assim como a Lei de Moore está terminando. O POWER9 nos dá a oportunidade de experimentar novos projetos arquitetônicos para levar a computação além dos limites atuais, maximizando a largura de banda de dados em toda a pilha do sistema.

De certa forma, o POWER9 é um tributo moderno aos designs clássicos de computador, onde um monte de chips interagiam para lidar com CPU, gráficos e operações de ponto flutuante. A base do POWER9 é uma “superestrada da informação” interna que desacopla o processamento e capacita aceleradores avançados para digerir e analisar conjuntos de dados massivos. ”

O POWER9 tem 24 núcleos e oferece a única conexão Nvidia NVLink de CPU para GPU da indústria. Isso é interessante porque os sistemas POWER9 com, digamos, Tesla V100 podem ser mais produtivos que os sistemas x86 com V100.

O POWER9 é usado principalmente em supercomputadores agora, mas pode aparecer na nuvem.
Existem alguns servidores POWER8 na nuvem IBM (a geração anterior da arquitetura POWER). Há algum movimento direcionado aos clientes atuais da IBM. Google e Rackspace trabalhando juntos em projetos de servidor Power9 para o Open Compute Project.

O supercomputador mais rápido do mundo, Summit, é baseado no POWER9, ao mesmo tempo que usa as GPUs Volta da Nvidia como aceleradores.

POWER10 é esperado em 2020–2021:
48 núcleos
PCIe v.5
NVLink 3.0
OpenCAPI 4.0

Fique de olho nisto.
RISC-V
Existem alguns outros movimentos interessantes, um deles é RISC-V.

O projeto começou em 2010 na Universidade da Califórnia, Berkeley. David Patterson participou. David Patterson foi professor de ciência da computação na Universidade da Califórnia, Berkeley desde 1976, ele é um pioneiro no design de processador RISC que cunhou o termo RISC, autor de livros famosos sobre arquitetura de computadores, agora um engenheiro distinto do Google participou do desenvolvimento de TPU (discutiremos a TPU na parte sobre ASICs).

Em primeiro lugar, o RISC-V é um conjunto de instruções de código-fonte totalmente aberto. Lembrar os recentes ataques Meltdown e Spectre, isso pode ser importante.

Em seguida, ele pode ser adaptado especificamente para uma determinada carga de trabalho do aplicativo. Por exemplo, a Western Digital anunciou planos para usar o ISA RISC-V em sua pilha de produtos existente, bem como para produtos futuros que combinarão processamento e armazenamento.

WDC diz: “O RISC-V permitirá que toda a indústria perceba os benefícios das arquiteturas de próxima geração, ao mesmo tempo que nos permite criar dispositivos, plataformas e sistemas de armazenamento mais específicos para aplicativos de Big Data e Fast Data. Estamos indo além do simples armazenamento de dados, mas agora criando ambientes inteiros que permitirão aos usuários perceber o valor e as possibilidades de seus dados ”.

“Os primeiros produtos da Western Digital com núcleos RISC-V serão lançados no final de 2019 ou início de 2020, afirma a Western Digital sem entrar em detalhes”. escreve AnandTech.

“A Western Digital também revelou que fez um investimento estratégico na Esperanto Technologies, desenvolvedora de SoCs baseados em RISC-V. Enquanto isso, os projetos em andamento do Esperanto demonstram o potencial da ISA RISC-V em geral. Até agora, Esperanto desenvolveu o núcleo ET-Maxion com desempenho de thread único maximizado, bem como o núcleo de eficiência energética ET-Minion com FPU vetorial. Esses núcleos serão usados ​​para um próximo SoC de 7 nm para cargas de trabalho de AI e aprendizado de máquina. Além disso, esses são os núcleos que o Esperanto licenciará para outras empresas ”.

“O primeiro sistema RISC-V AI da empresa em chips (SoCs) aproveitará 16 núcleos ET-Maxion RISC-V de 64 bits, 4.096 núcleos ET-Minion RISC-V com eficiência energética (cada um com uma unidade de ponto flutuante vetorial) e ser projetado em tecnologia de processo CMOS de 7 nm. ”

Sem dúvida, o chip tem como alvo o campo de aprendizado de máquina: “É importante notar que para este processador, o Esperanto armou o Et-Minion, que já incorpora a nova extensão vetorial, com duas extensões adicionais específicas de domínio para aprendizado de máquina. Uma dessas extensões é uma extensão de tensor para aumentar as instruções vetoriais.

Ditzel afirma que essas extensões melhoram muito a eficiência energética em cargas de trabalho de aprendizado de máquina. Todos os núcleos compartilham o mesmo espaço de endereço e provavelmente fazem uso do TileLink. O TileLink, que também foi apresentado no workshop RISC-V deste ano, é um tecido coerente com cache escalável de código aberto para RISC-V. ”

O chip proposto confunde as linhas entre CPUs, GPUs e DSPs, assim como o outro chip (não RISC-V) da PEZY chamado SC2 (2.048 núcleos, 180 W, 8.192 TFLOPS FP32, x2 para FP16).

Há outro caso interessante: a Microsemi anunciou que seus dispositivos FPGA (uma das próximas partes será dedicada ao FPGA) podem ser configurados com um núcleo de processador na Arquitetura Open RISC-V.
Outro bom artigo sobre RISC-V: “11 Mitos sobre a ISA RISC-V”.
Mais algumas notícias relacionadas ao RISC-V:
Núcleos SiFive U5, U7 e U8
Projeto do processador RISC-V da Alibaba – o Xuantie 910 (XT 910)
12 nm, 64 bits e 16 núcleos com clock de até 2,5 GHz, o RISC-V mais rápido
processador até o momento

Western Digital SweRV Core projetado para dispositivos integrados
suportando aplicativos de ponta com uso intenso de dados.
Esperanto Technologies está construindo um chip AI com mais de 1k núcleos
É muito cedo para dizer algo prático sobre DL, mas fique de olho nessa tecnologia também.

Outras

Haverá uma parte especial dedicada aos processadores móveis (você verá lá Snapdragons, A11 bionic, Samsung, Xiaomi e outros). Tecnicamente, muitos deles também são CPUs, mas a IA móvel vale uma conversa em separado.
Há um projeto KiloCore interessante de uma equipe da Universidade da Califórnia, Davis, que surgiu em junho de 2016. É um microchip que possui 1000 processadores programáveis ​​independentes, com uma taxa máxima de computação de 1,78 trilhão de instruções por segundo (se fossem de ponto flutuante instruções, então será igual a 1,78 TFLOPS). O chip KiloCore foi fabricado pela IBM usando sua tecnologia CMOS de 32 nm.

Cada núcleo de processador pode executar seu próprio pequeno programa independentemente dos outros, o que é uma abordagem fundamentalmente mais flexível do que as chamadas abordagens de instrução única e múltiplos dados utilizadas por processadores como GPUs; a ideia é dividir um aplicativo em muitas pequenas partes, cada uma das quais podendo ser executada em paralelo em diferentes processadores. Parece um ajuste natural para o ecossistema Erlang / Elixir.

Outra coisa legal com o KiloCore é sua eficiência energética. “O chip é o processador de“ muitos núcleos ”mais eficiente em termos de energia já relatado, disse Baas. Por exemplo, os 1.000 processadores podem executar 115 bilhões de instruções por segundo enquanto dissipam apenas 0,7 Watts, baixo o suficiente para ser alimentado por uma única bateria AA. ”

Bom começo, aguardando os próximos passos.

A Startup Cerebras Systems revelou o maior microprocessador do mundo, um chip waferscale (8,46 x 8,46 polegadas) feito sob medida para aprendizado de máquina. O wafer de silício com transistor de 1,2 trilhão incorpora 400.000 núcleos, 18 GB de memória SRAM e uma malha de rede com mais de 100 Pb / s de largura de banda agregada. E sim, esses números estão corretos.

Talvez seja mais relevante para a seção ASIC, na verdade …

Avise-me se eu esquecer algo importante.

Conclusões

Para o atual estado da arte das redes neurais, a conversa é principalmente sobre multiplicações de matrizes, convoluções otimizadas e assim por diante. Portanto, quanto mais elementos de computação simples (capazes de fazer diferentes tipos de multiplicações e adições) você tiver, melhor.

Mas a situação pode mudar no futuro. Todos nós sabemos que um neurônio biológico é muito mais complexo do que um neurônio artificial. O neurônio real é uma espécie de computador (alguns até pensam que é uma espécie de computador quântico). Nesse sentido, uma rede de elementos de processamento mais poderosos (do que apenas uma adição e multiplicação) poderia dar origem a diferentes arquiteturas mais adequadas a diferentes hardwares. Talvez um ambiente distribuído de vários núcleos massivo (que é mais sobre CPUs) desempenhe seu papel.

Mesmo agora, RNNs / LSTMs não são extremamente eficientes no hardware atual. É por causa de sua natureza sequencial inerente. Portanto, a tendência de reimplementar todas as arquiteturas de sucesso usando convoluções e outros métodos simples.

Outras redes neurais mais complexas (MANNs – redes neurais com memória aumentada e suas implementações mais conhecidas, como Neural Turing Machines, NTM e Differentiable Neural Computer, DNC; Capsule Networks; e assim por diante) podem ser ainda menos eficientes.

Suponho que esses tipos mais complexos de NNs estejam na mesma posição que as CNNs de 10 a 20 anos atrás. Os algoritmos estavam quase prontos, mas o hardware ficou para trás.

A primeira grande conquista para consertar essa situação aconteceu em 2009, quando Rajat Raina, Anand Madhavan, Andrew Y. Ng sugeriram em seu artigo “Aprendizado profundo não supervisionado em larga escala usando processadores gráficos” para usar GPUs (então uma única placa gráfica GTX 280 com 240 núcleos no total, 1 Gb mem, 933 GFLOPS FP32, que foi a melhor placa em 2008) para DL:

“Argumentamos que os processadores gráficos modernos ultrapassam em muito as capacidades computacionais das CPUs multicore e têm o potencial de revolucionar a aplicabilidade de métodos profundos de aprendizado não supervisionado.

Desenvolvemos princípios gerais para paralelizar massivamente tarefas de aprendizagem não supervisionadas usando processadores gráficos. Mostramos que esses princípios podem ser aplicados para aumentar com sucesso algoritmos de aprendizagem para DBNs e codificação esparsa. Nossa implementação de aprendizagem DBN é até 70 vezes mais rápida do que uma implementação de CPU dual-core para modelos grandes. ”

Então, em 2012, as GPUs vieram para a competição ImageNet, e Alex Krizhevsky venceu com seu AlexNet treinado em duas GTX 580 em paralelo (veja “Classificação ImageNet com Redes Neurais Convolucionais Profundas” por Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton).