Multithreading simultâneo e heterogêneo (SHMT) pode ser a solução que pode aproveitar o poder da CPU, GPU e acelerador de IA de um dispositivo de uma só vez, de acordo com um artigo de pesquisa do Universidade da Califórnia, Riverside. O artigo afirma que esta nova técnica multithreading pode dobrar o desempenho e reduzir pela metade o consumo de energia, o que resulta em quatro vezes mais eficiência. No entanto, como prova de conceito, não fique animado muito rápido; está apenas nos estágios iniciais.
Muitos dispositivos já usam técnicas de multithreading, como Multithreading Simultâneo (SMT), que divide o núcleo do processador em dois threads para uma computação mais eficiente. No entanto, o SHMT abrange vários dispositivos: uma CPU, uma GPU e pelo menos um acelerador alimentado por IA. A ideia é fazer com que cada processador trabalhe em coisas separadas simultaneamente e até mesmo distribuir recursos de GPU e IA em múltiplas tarefas.
De acordo com o artigo de autoria de Hung-Wei Tseng e Kuan-Chieh Hsu, o SHMT pode melhorar o desempenho em 1,95 vezes e reduzir o consumo de energia em 51%. Esses resultados foram registrados no Jetson Nano da era Maxwell da Nvidia, que possui uma CPU Cortex A57 Arm quad-core, 4 GB de LPDDR4 e uma GPU de 128 núcleos. Além disso, os pesquisadores instalaram um Google Edge TPU no slot M.2 do Jetson para fornecer o acelerador de IA, já que o Jetson vem com um.
Os pesquisadores alcançaram esse resultado criando um agendador de roubo de trabalho com reconhecimento de qualidade (QAWS). Essencialmente, o escalonador é ajustado para evitar altas taxas de erros e equilibrar a carga de trabalho uniformemente entre todos os componentes. De acordo com as políticas QAWS, as tarefas que exigem alta precisão e exatidão não serão atribuídas a aceleradores de IA às vezes propensos a erros, e as tarefas serão reatribuídas dinamicamente a outros componentes se um deles não atender às expectativas de desempenho.
Com o dobro do desempenho, metade da potência e quatro vezes a eficiência, você deve estar se perguntando qual é o problema. De acordo com o artigo, “a limitação do SHMT não é o modelo em si, mas sim se o programador pode revisitar o algoritmo para exibir o tipo de paralelismo que torna o SHMT fácil de explorar”. Esta afirmação refere-se a como o software deve ser escrito para aproveitar as vantagens do SHMT e que nem todo software pode utilizá-lo com o máximo efeito.
Reescrever software é conhecido por ser uma dor; por exemplo, a Apple teve que fazer muito trabalho braçal quando mudou da Intel para seus chips Arm internos para PCs Mac. Especificamente em relação ao multithreading, pode demorar um pouco para os desenvolvedores se ajustarem. Demorou vários anos para que o software aproveitasse as vantagens das CPUs multi-core, e podemos estar olhando para um cronograma semelhante para os desenvolvedores utilizarem vários componentes para a mesma tarefa.
Além disso, o artigo detalha como o aumento do desempenho do SHMT depende do tamanho do problema. O número de 1,95 vezes mais rápido vem do tamanho máximo do problema que o papel testou, mas problemas menores apresentam ganhos de desempenho menores. No tamanho de problema mais baixo, não houve essencialmente nenhum benefício de desempenho, uma vez que tamanhos de problema mais baixos oferecem menos oportunidades para todos os componentes trabalharem em paralelo.
À medida que computadores de todos os tipos são cada vez mais fornecidos com vários dispositivos de computação, como processadores de IA, é provavelmente inevitável que os desenvolvedores queiram usar mais hardware para acelerar as coisas. Mesmo que o SHMT não corresponda ao melhor cenário descrito no artigo, ainda poderá impulsionar PCs e smartphones se e quando ele ou uma tecnologia semelhante ganhar impulso dominante.