ID do artigo: 000073954 Tipo de conteúdo: Solução de problemas Última revisão: 07/05/2020

Por que a execução do Kernel e a transferência de dados de memória não podem ser executados simultaneamente, mesmo que não haja dependência de eventos no código do host?

Ambiente

    Intel® Quartus® Prime Pro Edition
    SDK Intel® FPGA para OpenCL™ Edição Pro
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

Devido a um problema na versão 19.1 e 19.2 do SDK Intel® FPGA para OpenCL™, ao executar projetos OpenCL™, o cliente pode encontrar que a execução do kernel e a transferência de dados de memória não podem ser executados simultaneamente, mesmo que não haja dependência entre eles no código do host. Abaixo está um exemplo: não há dependência de eventos entre clEnqueueWriteBuffer e clEnqueueNDRangeKernel, e uma fila de comando diferente é usada para inovar esses comandos. Mas no relatório de perfil, ele mostra a execução do kernel e a transferência de dados executados em ordem em vez de em paralelismo.

Resolução

Isso ocorreu devido a um bug na versão 19.1 e 19.2 do SDK Intel® FPGA para OpenCL™, que estava causando o lançamento atrasado dos kernels, quando há um acesso DDR simultâneo do host e do Kernel. Os lançamentos do Kernel estavam sendo adiados, mesmo que o kernel e o host acessavam uma parte diferente da memória DDR.

Esta dependência incorreta do lançamento do kernel foi corrigida na versão 19.3 do SDK Intel® FPGA para OpenCL™.

Produtos relacionados

Este artigo aplica-se a 1 produtos

Dispositivos programáveis Intel®

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.