Introdução ao SYCL

menotti
17.3K views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

Configuração do host e fila (Queue) SYCL

Este exercício é uma versão ligeiramente modificada da adição de vetores que fizemos no exemplo anterior. Você assumirá o controle desta vez e concluirá o código para essa aplicação. São fornecidas instruções em cada etapa da conclusão, portanto, você deve ser capaz de fazê-lo. Vamos começar!

Até agora, você deve saber que precisa incluir o arquivo de cabeçalho SYCL para usar o SYCL em sua aplicação. Ele já está incluído na parte superior do arquivo de origem - #include <CL/sycl.hpp>.

Configuração do host

Descrição

O primeiro passo é inicializar os dados vetoriais no host.

Nós usaremos:

cl::sycl::float4

que é um alias de tipo para

cl::sycl::vec<float, 4>

É uma estrutura do tipo SYCL que fornece a funcionalidade do vetor OpenCL para host e dispositivo.

Tarefa

Defina 2 vetores de entrada e 1 vetor de saída.

Entradas:

  • vetor a: {1.0, 1.0, 1.0, 1.0}
  • vetor b: {1.0, 1.0, 1.0, 1.0}

Resultado:

  • vetor c: {0.0, 0.0, 0.0, 0.0}

Localização no código fonte:

// <<Setup host memory>>
Dica

sycl::float4 a = { 1.0f, 1.0f, 1.0f, 1.0f }; // entrada 1

Inicializar uma fila SYCL

Descrição

Uma fila SYCL é construída a partir da seleção de um dispositivo suportado.

O sistema está configurado para sempre forçar a execução dos exemplos SYCL no dispositivo da CPU. Assim, o seletor padrão selecionará a CPU devido às suas heurísticas para identificar as plataformas e dispositivos suportados em nosso sistema.

Tarefa

Inicialize uma fila SYCL com uma CPU ou seletor de dispositivo padrão.

Localização no código fonte:

// <<Setup SYCL queue>>
Hint

sycl::queue myQueue(sycl::default_selector{}); 
// seleciona explicitamente a CPU: sycl::cpu_selector{}

Vamos executar!

Olá mundo em SYCL
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content