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:
- Use o oneAPI CLI Sampnavegador de arquivos para selecionar Array Transform na categoria Getting Started.
- Baixar de GitHub*.
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 |