Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
6. Superescalar e VLIW
6. Superescalar e VLIW
O vídeo explora como os processadores usam a execução superescalar para detectar e extrair o paralelismo entre as instruções binárias para melhorar o desempenho. Ele discute a importância da lógica de controle na identificação de instâncias em que as instruções podem ser executadas simultaneamente, como na ausência de dependências entre elas. O vídeo também apresenta dois exemplos de design de processador, superescalar e VLIW, com o último transferindo a responsabilidade de detectar dependências para os compiladores, gerando longas palavras de instrução a serem executadas em paralelo. Embora o VLIW reduza a verificação do tempo de execução, os pontos não utilizados na longa palavra de instrução ainda podem causar desperdício na unidade de execução.
7. SIMD e Multithreading de Hardware
7. SIMD e Multithreading de Hardware
O vídeo explica duas maneiras de enfrentar os desafios do paralelismo: instrução única, dados múltiplos (SIMD) e multithreading de hardware (SMT). O SIMD permite que as instruções de hardware sejam executadas em paralelo em vários elementos de dados, simplificando o agendamento e a lógica de decodificação. O SMT explora o paralelismo em nível de thread executando fluxos de instruções independentes simultaneamente, exigindo arquivos de registro adicionais e compartilhamento de cache cuidadoso. O vídeo também discute a implementação do escalonamento de thread fatiado no tempo, em que os threads se revezam ocupando o caminho de dados do processador no modo round-robin, reduzindo a latência e permitindo que vários threads acessem unidades de computação e sistemas de memória simultaneamente. Em última análise, o processador pode acomodar quantos threads forem necessários, embora o ganho de desempenho possa não ser tão significativo em um processador de thread único.
8. Arquitetura do Processador Multicore
8. Arquitetura do Processador Multicore
Este vídeo explica a arquitetura dos processadores multicore e seus benefícios, como vários núcleos operando de forma independente e compartilhando alguns componentes, enquanto cada núcleo possui seu próprio pipeline e cache de dados. A importância da hierarquia de cache na redução da lacuna de velocidade entre o microprocessador e o acesso à memória é destacada usando vários níveis de caches que exploram a localidade temporal e espacial. O vídeo também aborda o design do sistema no chip, que combina diferentes unidades de função e interfaces em um único chip para reduzir o custo e o fator de forma. No geral, o vídeo fornece uma introdução útil à complexidade e compensações envolvidas no projeto de processadores multicore.
9. Arquitetura da GPU
9. Arquitetura da GPU
A unidade de processamento acelerado (APU) é um processador heterogêneo com núcleos de baixa potência e unidades de GPU no mesmo chip. As GPUs possuem um grande número de núcleos shader que podem ser programados com instruções, e seus caches geralmente não são coerentes, tornando seu design mais simples e permitindo um desempenho muito maior quando muitos núcleos estão operando ao mesmo tempo. A AMD e a Nvidia utilizam pequenas unidades de computação para suportar a operação em vários dados ao mesmo tempo e possuem grandes arquivos de registro para suportar a troca rápida de contexto. O palestrante também explica como gerenciar o fluxo de controle na arquitetura de GPU, especialmente ao lidar com instruções de ramificação que podem produzir resultados inválidos, mas os programadores não precisam se preocupar muito com esses problemas porque os fornecedores de processadores já fornecem lógica de controle no hardware. No geral, as GPUs são processadores populares para cargas de trabalho complexas no mercado moderno, especialmente no campo de IA e aprendizado de máquina.
10. Internos do FPGA
10. Internos do FPGA
Este vídeo discute a arquitetura e os recursos de field-programmable gate arrays (FPGAs). Os FPGAs possuem lógica programável, permitindo que sejam reprogramados para acomodar novas funcionalidades, e tenham acesso direto aos dados por meio de grandes quantidades de entradas e saídas (I/Os). A estrutura da tabela de pesquisa em FPGAs consiste em vários níveis de multiplexadores que podem ser programados para definir funções lógicas. Os FPGAs usam registradores programáveis que podem ser usados para contadores, registradores de deslocamento, máquinas de estado e funções DSP. Cada bloco retangular no chip representa um Logic Array Block (LAB), com cada LAB contendo dez Adaptive Logic Modules (ALMs). Os FPGAs são usados em setores como dispositivos de consumo, automotivo, instrumentação médica e comunicação e transmissão.
e carry bits, e como a entrada para registradores pode vir de elementos lógicos anteriores.
11. Memória OpenCL em um sistema GPU
11. Memória OpenCL em um sistema GPU
O instrutor explica o mapeamento da memória OpenCL para GPU AMD e os diferentes níveis de memória em um sistema GPU. O dispositivo de computação possui um processador de comando que gerencia as diretivas para as unidades de computação, que funcionam como núcleos com várias pistas SIMD, arquivos de registro privados e memória privada. O programa do kernel destina-se a fornecer trabalhos autônomos que permitem que todos os núcleos disponíveis sejam utilizados e diminuam a latência de acesso à memória. O palestrante também menciona o conceito de intensidade aritmética, que se refere à relação entre a computação e o movimento do eixo da memória, e como ela deve ser alta para evitar que a largura de banda da memória da GPU seja o fator limitante.
12. Exemplo OpenCL: Multiplicação de Matrizes
12. Exemplo OpenCL: Multiplicação de Matrizes
Este vídeo apresenta a multiplicação de matrizes como um exemplo de programação OpenCL. O palestrante demonstra como o código C é escrito para criar loops independentes que podem atravessar linhas e colunas da matriz. Itens de trabalho são discutidos e como eles podem ser mapeados para elementos de matriz em OpenCL. Uma implementação do kernel é explicada, abrangendo os argumentos da função do kernel, como ela é chamada e seu corpo. O palestrante mostra como a matriz de entrada é armazenada em uma matriz unidimensional usando números de linha e índice para calcular índices. Por fim, a função kernel calcula o produto escalar para produzir o elemento na matriz de saída. A abordagem linear para armazenar matrizes na memória física é enfatizada.
13. Estrutura de um programa OpenCL (parte1)
13. Estrutura de um programa OpenCL (parte1)
No vídeo "Estrutura de um programa OpenCL (parte 1)", é explicado o processo de construção de um aplicativo OpenCL. O programa deve primeiro consultar a plataforma OpenCL para entender seus recursos e criar um contexto OpenCL e uma fila de comandos. Os buffers são então criados para troca de dados entre o host e a memória do dispositivo, e o programa do kernel é compilado em um binário para execução no dispositivo. O vídeo explica como criar buffers somente leitura e somente gravação, alocar espaço para matrizes de saída e copiar resultados de volta para o host. A importância de verificar as chamadas de API para uma execução bem-sucedida é enfatizada.
14. Estrutura de um programa OpenCL (parte2)
14. Estrutura de um programa OpenCL (parte2)
A terceira etapa na programação OpenCL envolve a compilação do kernel, que é diferente para dispositivos FPGA, pois é feita offline. O programa CL create com source e C TX é usado para criar um programa, seguido pelo programa CL build para compilar o programa em binário. A função correta do kernel é selecionada usando o ponto de entrada apropriado e os argumentos do kernel devem ser inicializados usando CL set kernel argument com o ponteiro correto. O orador entra em detalhes sobre como configurar os argumentos corretamente na multiplicação de matrizes. Em seguida, eles discutem a configuração de tamanhos de grupos de trabalho locais e globais, a execução do kernel e a obtenção dos resultados usando o CL na API de buffer de fila. Por fim, o palestrante menciona brevemente os eventos na programação OpenCL.
15. Demonstração de multiplicação de matriz OpenCL
15. Demonstração de multiplicação de matriz OpenCL
O vídeo "OpenCL Matrix Multiplication Demo" explica o processo de execução de um exemplo de multiplicação de matrizes usando a estrutura OpenCL. Ele inclui vários arquivos de código-fonte, como um programa C principal para o lado do host, programa do kernel e um makefile. O vídeo cobre diferentes aspectos da estrutura OpenCL, obtendo IDs de plataforma e dispositivo, criando um contexto OpenCL, programa e objetos de kernel, gerenciamento de buffer para o host e criação e inicialização de buffers no dispositivo. O apresentador também mostra um kernel de amostra que executa operações de produto ponto e uma demonstração do resultado final em um mecanismo de computação AMD Radeon pro 575.