Back
Close

Introdução ao SYCL

menotti
22.6K views

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
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants