Introdução à distribuição Intel® para GDB* no host do sistema operacional Linux*

Comece a usar a Distribuição Intel® para GDB* para depurar aplicativos. Siga as instruções abaixo para configurar o depurador para depurar aplicativos com kernels descarregados para dispositivos de CPU e GPU.

Intel® Distribution for GDB* está disponível como parte do Intel® oneAPI Base Toolkit. Para obter mais informações sobre kits de ferramentas oneAPI, visite o página do produto.

Visite o Notas de Lançamento página para obter informações sobre os principais recursos, novos recursos e problemas conhecidos.

Você pode usar um SYCL* sample code, Array Transform, para começar com a Distribuição Intel® para GDB*. o sample não gera erros e simplesmente ilustra os recursos do depurador. O código processa os elementos da matriz de entrada dependendo se eles são pares ou ímpares e produz uma matriz de saída. Você pode usar o samparquivo para depurar tanto na CPU quanto na GPU, especificando o dispositivo escolhido por meio de um argumento de linha de comando. Observe, porém, que a depuração de GPU pode exigir dois sistemas e configuração adicional para depuração remota.

Pré-requisitos

Se você deseja depurar na GPU, instale os drivers de GPU mais recentes e configure seu sistema para usá-los. Consulte o Guia de instalação dos kits de ferramentas Intel® oneAPI para sistema operacional Linux*. Siga as instruções Instalar drivers de GPU Intel para instalar os drivers de GPU correspondentes ao seu sistema.

Além disso, você pode instalar uma extensão para Visual Studio Code* para depurar GPU com Distribuição Intel® para GDB*. Consulte o Usando o Visual Studio Code com o guia de kits de ferramentas Intel® oneAPI.

Configurar o depurador de GPU

Para configurar o depurador de GPU, você deve ter acesso root.


OBSERVAÇÃO Durante a depuração do kernel, a GPU é interrompida e a saída de vídeo fica indisponível na máquina de destino. Por causa disso, você não pode depurar a GPU do sistema de destino se a placa GPU do sistema também for usada para saída gráfica. Nesse caso, conecte-se à máquina via ssh.


1. Se você deseja depurar na GPU, é necessário um Kernel do Linux que suporte a depuração da GPU.

a. Siga as instruções em Software Intel® para recursos de GPU de uso geral para baixar e instalar os drivers necessários.
b. Habilite o suporte de depuração i915 no Kernel:

a. Abra um terminal.
b. Abra o grub file em /etc/default.
c. no grub file, localize a linha GRUB_CMDLINE_LINUX_DEFAULT=””.
d. Digite o seguinte texto entre aspas (“”):

i915.debug_eu=1


OBSERVAÇÃO Por padrão, o driver da GPU não permite que as cargas de trabalho sejam executadas em uma GPU por mais de um determinado período de tempo. O driver elimina essas cargas de trabalho de longa duração redefinindo a GPU para evitar travamentos. O mecanismo hangcheck do driver é desativado se o aplicativo estiver sendo executado no depurador. Se você planeja executar cargas de trabalho de computação longas também sem um depurador anexado, considere aplicar GPU: desativar Hangcheck adicionando

i915.enable_hangcheck=0

para o mesmo Linha GRUB_CMDLINE_LINUX_DEFAULT.

c. Atualize o GRUB para que essas alterações entrem em vigor:

sudo atualização-grub

d. Reinício.

2. Configure seu ambiente CLI obtendo o script setvars localizado na raiz de sua instalação do kit de ferramentas.

Linux (Sudo):

fonte /opt/intel/oneapi/setvars.sh

Linux (usuário):

fonte ~/intel/oneapi/setvars.sh

3. Ambiente de configuração
Use as seguintes variáveis ​​de ambiente para habilitar o suporte do depurador para Intel® oneAPI nível zero:

exportar ZET_ENABLE_PROGRAM_DEBUGGING=1
exportar IGC_EnableGTLocationDebugging=1

4. Verificação do sistema
Quando tudo estiver pronto, execute o seguinte comando para confirmar se a configuração do sistema é confiável:

python3 /caminho/para/intel/oneapi/diagnostics/latest/diagnostics.py –filter debugger_sys_check -force

Uma possível saída de um sistema bem configurado é a seguinte:


Resultados das verificações:
================================================= ==============================
Verifique o nome: debugger_sys_check
Descrição: Esta verificação verifica se o ambiente está pronto para usar gdb (Intel(R) Distribution for GDB*).
Status do resultado: APROVADO
Depurador encontrado.
libipt encontrado.
libiga encontrada.
a depuração i915 está habilitada.
Variáveis ​​ambientais corretas. ==================================================== =====================================

1 VERIFICAÇÃO: 1 APROVADO, 0 FALHA, 0 AVISOS, 0 ERROS

Saída do console file: /path/to/logs/diagnostics_filter_debugger_sys_check_force.txt saída JSON file: /caminho/para/diagnostics/logs/diagnostics_filter_debugger_sys_check_force.json …

Compile o programa com informações de depuração

Você pode usar o sample projeto, Array Transform, para começar rapidamente com o depurador de aplicativos.

1. Para obter o sample, escolha uma das seguintes maneiras:

2. Navegue até o src do sample projeto:

cd array-transform/src

3. Compile o aplicativo ativando as informações de depuração (sinalizador -g) e desativando as otimizações (sinalizador -O0).
Desativar a otimização é recomendado para um ambiente de depuração estável e preciso. Isso ajuda a evitar confusão causada por alterações no código após as otimizações do compilador.


OBSERVAÇÃO Você ainda pode compilar o programa com a otimização ativada (sinalizador -O2), o que pode ser útil se você visar a depuração de montagem da GPU.


Você pode compilar o programa de várias maneiras. As opções 1 e 2 usam compilação just-in-time (JIT), que é recomendada para depurar os sample. A opção 3 usa compilação antecipada (AOT).

  • Opção 1. Você pode usar o CMake file para configurar e construir o aplicativo. Consulte o LEIA-ME do sample para as instruções.

OBSERVAÇÃO O CMake file fornecido com o sample já passa os sinalizadores -g -O0.


  • Opção 2. Para compilar o array-transform.cpp sampaplicativo le sem o CMake file, emita os seguintes comandos:

icpx -fsycl -g -O0 array-transform.cpp -o array-transform

Se a compilação e a vinculação forem feitas separadamente, retenha os sinalizadores -g -O0 na etapa de vinculação. A etapa de link é quando o icpx converte esses sinalizadores para serem passados ​​para o compilador do dispositivo em tempo de execução. Exampem:

icpx -fsycl -g -O0 -c array-transform.cpp
icpx -fsycl -g -O0 array-transform.o -o array-transform

  • Opção 3. Você pode usar a compilação AOT para evitar tempos de compilação JIT mais longos no tempo de execução. A compilação JIT pode levar muito mais tempo para kernels grandes no depurador. Para usar o modo de compilação Ahead-of-Time:

• Para depuração em uma GPU:
Especifique o dispositivo que você usará para a execução do programa. por example, -device dg2-g10 para Intel® Data Center GPU Flex 140 Graphics. Para obter a lista de opções suportadas e mais informações sobre a compilação AOT, consulte o Guia e referência do desenvolvedor do compilador Intel® oneAPI DPC++.
Por exemploampem:

icpx -fsycl -g -O0 -fsycl-targets=spir64_gen -Xs “-device dg2-g10” array-transform.cpp -o arraytransform

A compilação antecipada requer o OpenCLTM Offline Compiler (OC Compiler LOC). Para obter mais informações, consulte a seção “Instalar OpenCLTM Offline Compiler (OCLOC)” do Guia de instalação.

• Para depuração em uma CPU:

icpx -fsycl -g -O0 -fsycl-targets=spir64_x86_64 array-transform.cpp -o array-transform

Iniciar uma sessão de depuração

Inicie a sessão de depuração:

1. Inicie a Distribuição Intel® para GDB* da seguinte maneira:

transformação de array gdb-oneapi

Você deve ver o prompt (gdb).

2. Para garantir que o kernel seja descarregado no dispositivo correto, execute as etapas a seguir. Ao executar o comando run no prompt (gdb), passe o CPU, GPU-processador or acelerador argumento:

  • Para depuração na CPU:

executar CPU

Exampsaída:

[SYCL] Usando o dispositivo: [Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz] da [Intel(R) OpenCL]
  • Para depuração na GPU:

executar gpu

Exampsaída:

[SYCL] Usando o dispositivo: [Intel(R) Data Center GPU Flex Series 140 [0x56c1]] da [Intel(R) LevelZero]
  • Para depuração no emulador FPGA:

acelerador de corrida

Exampsaída:

[SYCL] Usando o dispositivo: [Intel(R) FPGA Emulation Device] da [Intel(R) FPGA Emulation Platform for OpenCL(TM) software]

OBSERVAÇÃO Os parâmetros cpu, gpu e acelerador são específicos do aplicativo Array Transform.


3. Para sair da Distribuição Intel® para GDB*:

desistir

Para sua conveniência, os comandos comuns da Distribuição Intel® para GDB* são fornecidos no Folha de Referência.

Para depurar o Array Transform sample e saiba mais sobre a Distribuição Intel® para GDB*, percorra os cenários básicos de depuração usando o Tutorial.

Saber mais
Documento Descrição
Tutorial: Depuração com Distribuição Intel® para GDB* Este documento descreve os cenários básicos a serem seguidos durante a depuração de SYCL* e OpenCL com distribuição Intel® para GDB*.
Distribuição Intel® para GDB* Guia do usuário Este documento descreve todas as tarefas comuns que você pode concluir com a Distribuição Intel® para GDB* e fornece os detalhes técnicos necessários.
Distribuição Intel® para GDB* Notas de versão As notas contêm informações sobre os principais recursos, novos recursos e problemas conhecidos da Distribuição Intel® para GDB*.
página de produto oneAPI Esta página contém uma breve introdução sobre kits de ferramentas oneAPI e links para recursos úteis.
Folha de referência da Distribuição Intel® para GDB* Este documento de uma página descreve brevemente os pré-requisitos da distribuição Intel® para GDB* e comandos úteis.
Jacobi S.ample Este pequeno aplicativo SYCL* tem duas versões: bugado e corrigido. Use o samparquivo para exercitar a depuração de aplicativos com o Intel® Distribution for GDB*.
Avisos e isenções de responsabilidade

As tecnologias Intel podem exigir ativação de hardware, software ou serviço habilitada.

Nenhum produto ou componente pode ser absolutamente seguro.

Seus custos e resultados podem variar.

© Intel Corporation. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.

Nenhuma licença (expressa ou implícita, por preclusão ou de outra forma) para quaisquer direitos de propriedade intelectual é concedida por este documento.

Os produtos descritos podem conter defeitos de projeto ou erros conhecidos como errata, que podem fazer com que o produto se desvie das especificações publicadas. Erratas caracterizadas atuais estão disponíveis mediante solicitação.

A Intel se isenta de todas as garantias expressas e implícitas, incluindo, sem limitação, as garantias implícitas de comercialização, adequação a uma finalidade específica e não violação, bem como qualquer garantia decorrente do curso de desempenho, curso de negociação ou uso no comércio.

OpenCL e o logotipo OpenCL são marcas comerciais da Apple Inc. usadas com permissão da Khronos.

Documentos / Recursos

Distribuição intel para GDB no host do sistema operacional Linux [pdf] Guia do Usuário
Distribuição para GDB no host do sistema operacional Linux, GDB no host do sistema operacional Linux, host do sistema operacional Linux, host do sistema operacional, host

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *