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
EECE.6540 Computação Heterogênea (Universidade de Massachusetts Lowell) - 46. Conceitos básicos de FPGA
46. Conceitos básicos de FPGA
Este vídeo aborda os conceitos básicos de field programmable gate arrays (FPGAs). Ao contrário das CPUs, os FPGAs podem ser programados para atender a recursos de hardware específicos, o que significa que são altamente personalizáveis. O vídeo discute a importância da latência no projeto do circuito e como ela pode ser balanceada com a maximização do f max. Ele apresenta o conceito de projeto de pipeline para aumentar a frequência na qual uma computação pode ser executada, bem como discute caminhos de dados e caminhos de controle em um circuito. Por fim, o vídeo discute a ocupação do circuito em um FPGA e como a diminuição das bolhas e o aumento da ocupação podem aumentar o f max.
47. Análise de projeto (I): analise as primeiras imagens do FPGA
47. Análise de projeto (I): analise as primeiras imagens do FPGA
Esta seção do vídeo se concentra no processo de análise de imagens iniciais de FPGA para um projeto DPC++. O palestrante explica as etapas envolvidas, como compilar o programa, gerar o binário do FPGA e executar a criação de perfil. O vídeo inclui uma demonstração de como gerar relatórios e interpretar os vários painéis de informações fornecidos nos relatórios. O palestrante também analisa as primeiras imagens do FPGA de um módulo b2 e discute os vários blocos lógicos, loops, unidade de carga e fator de desenrolamento. Eles também discutem como o projeto de uma função do kernel pode impactar significativamente o projeto interno do FPGA e fornecem exemplos de como os loops internos e externos podem ser desenrolados para aumentar a taxa de transferência. Os exemplos ilustram a flexibilidade da programação em linguagem de alto nível para influenciar os recursos de hardware do FPGA.
48. Análise de Projeto DPC++ FPGA (II): Criação de Perfil de Tempo de Execução
48. Análise de Projeto DPC++ FPGA (II): Criação de Perfil de Tempo de Execução
Neste vídeo, o apresentador discute o processo de análise do desempenho do tempo de execução de um programa usando ferramentas que coletam dados de desempenho adicionando registros de instrumentos de criação de perfil aos fluxos de bits do FPGA. Eles demonstram como compilar para criação de perfil e interpretar os resultados coletivos de criação de perfil usando o criador de perfil dinâmico Intel FPGA com contadores de desempenho adicionados pelo usuário. Eles mostram como o criador de perfil V2 exibe funções de kernel e executáveis usados para analisar resultados de criação de perfil de tempo de execução e como identificar gargalos de partição e otimizá-los. O exemplo usado é um kernel de modificação de matriz que tinha muitos acessos à memória global, que foi otimizado usando memória local para reduzir a comunicação com a memória global e melhorar a eficiência do projeto.
EECE.6540 Computação heterogênea (Universidade de Massachusetts Lowell) - 49. Exemplos de OpenCL
49. Exemplos de OpenCL (I)
O vídeo do YouTube "OpenCL Example (I)" aborda a implementação da multiplicação de matrizes usando loops aninhados na programação C e sua implementação como um kernel OpenCL. O palestrante explica como usar dois níveis de loops aninhados para o cálculo do produto escalar do elemento resultante na matriz e como cada elemento de saída da matriz C é tratado como um item de trabalho separado no OpenCL. O vídeo também aborda as etapas necessárias para preparar o kernel OpenCL para execução e recuperar a matriz resultante de um dispositivo para um host, bem como definir tamanhos de grupos de trabalho e executar o kernel com argumentos do kernel modificados. Além disso, é fornecido um código de amostra para multiplicação de matrizes, e o palestrante demonstra o processo de obtenção de IDs de dispositivo e plataforma em um Mac OS e a criação de um objeto de programa em diferentes plataformas. Por fim, o vídeo explica o gerenciamento de buffer, rastreando os recursos alocados no lado do host e os recursos OpenCL usados e fornece um exemplo de kernel de multiplicação simples.
Este vídeo aborda vários exemplos de uso do OpenCL, incluindo multiplicação de matrizes, rotação de imagens e filtragem de imagens. Para a rotação da imagem, o palestrante explica como resolver o problema usando decomposição de entrada e demonstra a função kernel usada para identificar a localização original e nova de cada pixel. Para filtragem de imagem, o palestrante discute o conceito de criação de objetos de imagem no lado do dispositivo e o uso do amostrador OpenCL para definir como acessar a imagem. Eles também apresentam uma implementação de amostra da função de convolução de imagem com dois loops for aninhados. O vídeo termina com uma demonstração do uso do OpenCL para realizar um filtro de convolução em uma imagem e verificar os resultados.
Uma comparação de SYCL, OpenCL, CUDA e OpenMP para classificação de vetores de suporte massivamente paralelos ( WOCL / SYCLcon 2022 )
Uma comparação de SYCL, OpenCL, CUDA e OpenMP para classificação de vetores de suporte massivamente paralelos
O vídeo compara o desempenho de SYCL, OpenCL, CUDA e OpenMP em diferentes plataformas de hardware para classificação massivamente paralela de máquinas de vetores de suporte. O palestrante explica a paralelização da multiplicação matriz-vetor com uma implementação chamada Parallel Fibonacci, que suporta execução multigpu, mas apenas classificação binária e cálculos densos. O hardware usado para teste inclui GPUs Nvidia A100 e RTX 380, GPU AMD Radeon Pro 7 e CPU Intel Core E9-10-09020X. Os resultados mostram que CUDA é o back-end mais rápido para GPUs Nvidia, enquanto OpenCL é o back-end mais rápido para CPUs. O SYCL é fácil de usar, enquanto o Hipsicle é mais rápido que o DPC ++ e o OpenCL para uso barato. Além disso, o palestrante discute trabalhos futuros, como investigar o desempenho em FPGAs, adicionar suporte para sistemas distribuídos via MPIs e usar cálculos de precisão mista e hardware especial de aprendizado de máquina, como os núcleos tensores da NVIDIA.
Alcançando um C++ ainda mais rico em kernels OpenCL com o uso de libclcxx ( WOCL / SYCLcon 2022 )
Alcançando um C++ ainda mais rico em kernels OpenCL com o uso de libclcxx
O vídeo discute o uso de libclcxx para permitir a integração de bibliotecas C++ no desenvolvimento do kernel de código aberto. O projeto integra type traits, uma biblioteca essencial para metaprogramação em C++, com o objetivo de expor mais funcionalidades C++ aos desenvolvedores. O vídeo mostra como a biblioteca de características de tipo pode otimizar o desempenho dos kernels OpenCL por meio de sua capacidade de manipular o espaço de endereço e os tipos de vetor. O vídeo incentiva os desenvolvedores a experimentar a biblioteca e contribuir para reduzir os ciclos de desenvolvimento, obtendo a máxima compatibilidade com C++. A biblioteca fornece documentação de oxigênio em um estilo semelhante às páginas de referência C++, facilitando a navegação dos desenvolvedores pela nova funcionalidade.
SYCL além do OpenCL: A arquitetura, estado atual e direção futura do hipSYCL ( IWOCL / SYCLcon 2020 )
SYCL além do OpenCL: A arquitetura, estado atual e direção futura do hipSYCL
O projeto hipSYCL é uma implementação de código aberto de SYCL que visa GPUs por meio do modelo de programação HIP em vez de OpenCL. Ele consiste em um componente compilador, interface foice e tempo de execução seguro. O compilador seguro identifica kernels, manipula a alocação de memória local e implementa um mecanismo de sinalização. A função dispatch cria itens específicos com base em kernels fornecidos pelo usuário, e funções otimizadas podem ser definidas com rock prim. A direção futura é permitir vários back-ends e remover restrições no modelo de compilação estático. O modelo de envio da operação está em transição para um envio em lote para maior rendimento da tarefa, e hipSYCL é interoperável no nível do código-fonte, permitindo misturar e combinar com hip e CUDA. Como um projeto de código aberto, os colaboradores são bem-vindos.
SYCL: o futuro é aberto, paralelo e heterogêneo (Core C++ 2022 )
SYCL: o futuro é aberto, paralelo e heterogêneo
Neste vídeo sobre programação SYCL, o palestrante destaca a necessidade de subir o nível de abstração para aumentar a produtividade e atrair mais desenvolvedores, já que modelos complexos exigem maior poder computacional, o que é atendido por sistemas aceleradores. A importância da portabilidade de software e OneAPI é enfatizada, pois permite que os dispositivos funcionem em CPUs, GPUs e outros dispositivos. Os benefícios do SYCL, um modelo de programação aberto, paralelo e heterogêneo, também são discutidos, com o palestrante destacando os inúmeros recursos e ferramentas online disponíveis para otimizar o código e melhorar o desempenho. O palestrante incentiva os espectadores a visitar oneapi.io e seu canal no YouTube para obter recursos e suporte.
Aceleração de GPU em Python
Aceleração de GPU em Python
O vídeo explica como obter aceleração de GPU na programação Python, aproveitando o poder das unidades de processamento gráfico, que podem fornecer uma aceleração de até 10x com paralelismo de dados. Os dois padrões para computação de GPU, OpenCL e CUDA, são brevemente apresentados, e o vídeo demonstra o uso de Pi OpenCL e CUDA para multiplicação de matrizes em Python. O palestrante explica o uso da memória global e do kernel para multiplicação de matrizes e também discute o algoritmo usado para computar um elemento no produto matriz-matriz. O código para aceleração de GPU em C e Python é discutido, com ênfase na compreensão de representações internas de matrizes e alocação de memória. Os exercícios da palestra fornecem uma base para uma exploração mais aprofundada da computação GPU.
Apresentação de lançamento do OpenCL 3.0 (IWOCL / SYCLcon 2020)
Apresentação de lançamento do OpenCL 3.0
O lançamento do OpenCL 3.0 é discutido neste vídeo, com foco em sua importância para a programação paralela de baixo nível na indústria. O OpenCL 3.0 não adiciona novas funcionalidades à API, mas fornece um realinhamento do ecossistema para permitir que o OpenCL alcance mais desenvolvedores e dispositivos. O apresentador também discute a adição de extensões para processadores leves DSP, o roteiro para funcionalidade futura e o crescente ecossistema de compiladores de linguagem de kernel de código aberto que podem gerar kernels espirituais para OpenCL Vulcan. O feedback dos usuários é encorajado para ajudar a finalizar a especificação enquanto o grupo de trabalho se prepara para a primeira onda de implementações nos próximos meses.