GPUs NVIDIA obtêm suporte SYCL depois que o Codeplay contribui para o desenvolvimento do padrão DPC ++

Hardware / GPUs NVIDIA obtêm suporte SYCL depois que o Codeplay contribui para o desenvolvimento do padrão DPC ++ 2 minutos lidos

Nvidia



Depois de obter o suporte de empresas líderes como Intel, Xilinx, Renesas e Imagination Technologies, o SYCL (pronuncia-se ‘foice’), os desenvolvedores que usam GPUs NVIDIA também poderão obter o benefício. Codeplay, a organização que sempre contribuiu ativamente para a Comunidade SYCL, agora culminou com o desenvolvimento avançado de DPC ++ (Data Parallel C ++), que facilita a reciclagem e reutilização de código em várias plataformas de hardware. O resultado é ComputeCpp, Implementação do SYCL da própria Codeplay .

A edição mais recente do ComputeCpp oferece suporte experimental para GPUs NVIDIA usando OpenCL e PTX da NVIDIA

No ano passado, a Intel deu um passo decisivo para dar um empurrão no SYCL, e até começou a trabalhar em um padrão da API. O oneAPI inclui DPC ++ (uma implementação de SYCL com extensões) para CPUs, GPUs e FPGAs da Intel. O movimento logo se tornou bastante grande e ganhou impulso depois que o suporte para SYCL veio da Xilinx, Renesas e Imagination Technologies. Simplificando, os desenvolvedores de software agora são capazes de direcionar uma ampla gama de dispositivos usando SYCL.



O ComputeCpp oferece suporte experimental para GPUs NVIDIA usando OpenCL e PTX da NVIDIA. Mas DPC ++ (implementação SYCL da Intel) oferece a oportunidade de adicionar suporte total para GPUs NVIDIA integradas ao compilador LLVM sem passar por OpenCL. A Codeplay anunciou que está abrindo o código-fonte da fase inicial experimental de sua implementação que permite aos desenvolvedores SYCL direcionar as GPUs NVIDIA. A base de código para esta implementação permanece em um garfo separado do projeto principal do compilador LLVM e do branch DPC ++. A organização acrescentou que pretende trabalhar com a Intel para obter o suporte de GPU NVIDIA adicionado ao compilador Intel / LLVM upstream.

Como os desenvolvedores podem se beneficiar do suporte SYCL para GPUs NVIDIA?

Este projeto permite aos desenvolvedores direcionar GPUs NVIDIA usando o código SYCL, sem ter que passar pela camada OpenCL no sistema. Em outras palavras, com apenas uma GPU NVIDIA, os desenvolvedores podem executar DPC ++ em seu sistema para compilar aplicativos SYCL. Além disso, qualquer aplicativo CUDA existente pode ser portado de forma incremental para SYCL usando o suporte CUDA e, em seguida, executá-lo em uma plataforma que não tem CUDA. Isso claramente economiza muito tempo e esforços repetidos.

Codeplay ofereceu instruções no arquivo README do projeto explicando como usar o back-end NVIDIA para DPC ++. Os desenvolvedores são obrigados a usar alguns sinalizadores ao compilar e algum código para configurar seu seletor de dispositivo para garantir que o tempo de execução saiba qual dispositivo visar. Em particular, a seção “ Crie um conjunto de ferramentas SYCL com suporte para NVIDIA CUDA ”E as opções do compilador Clang têm instruções específicas .

A Codeplay confirmou que executou com sucesso o projeto com Ubuntu 18.04 usando CUDA 10.1 em uma GPU Titan RTX (recursos de computação 7.5). A equipe garante que ele também deve funcionar em outras versões do Linux com qualquer GPU NVIDIA compatível com SM 5.0 ou superior. No entanto, o aplicativo SYCL compilado só será capaz de direcionar CUDA ou OpenCL, não ambos ao mesmo tempo.