Debugging HIP

一、Debugging tools
1. Using ltrace

ltrace 是一个标准的 Linux 工具,它可以在每次动态库调用时向标准错误输出一条消息。由于 ROCr(Radeon Open Compute 的 R 语言支持)和 ROCt(ROC 内核驱动的用户空间接口)都是动态库,使用 ltrace 可以轻松追踪这些库中的活动。追踪可以作为一种强大的方式,快速观察应用程序的流程,然后再使用命令行调试器深入了解细节。ltrace 是一个有助于可视化整个 ROCm 软件栈运行时行为的工具。追踪还可以显示与关键路径上意外调用昂贵 API 调用相关的性能问题(在性能上成本较高,可能是因为这些 API 调用涉及到大量的计算、内存使用、磁盘 I/O 或网络通信等,从而导致程序执行效率降低或响应时间延长)。

举个栗子:

2. Using ROCgdb

ROCgdb 是基于 GDB(GNU 源代码级调试器)开发的,专为 Linux 系统上的 ROCm 环境设计的源代码级调试器。它与 CUDA 开发者使用的 cuda-gdb 类似,都是用来调试 GPU 程序的。

举个栗子:

二、Debugging HIP Applications

三、Useful Environment Variables

HIP (Heterogeneous-compute Interface for Portability) 提供了一些环境变量,这些环境变量允许 HIP、hip-clang(HIP 的 C/C++ 编译器前端)或 HSA(Heterogeneous System Architecture)驱动程序禁用某些特性或优化。这些环境变量不是为了生产环境设计的,但它们在诊断应用程序(或驱动程序)中的同步问题时非常有用。

1. Kernel Enqueue Serialization

在 GPU 编程中,内核(Kernel)排队序列化是一个重要的概念,它可以帮助开发者控制内核命令的执行顺序。通过使用环境变量,开发者可以指定 HIP 运行时在执行内核或数据传输时的同步行为。以下是一些与内核排队序列化相关的环境变量:

  1. AMD_SERIALIZE_KERNEL

    • 设置为 1:在执行内核之前等待前一个内核命令完成。
    • <
root@CHUN:~# sudo amdgpu-install --list-usecase If --usecase option is not present, the default selection is "dkms,graphics,opencl,hip" Available use cases: dkms (to only install the kernel mode driver) - Kernel mode driver (included in all usecases) graphics (for users of graphics applications) - Open source Mesa 3D graphics and multimedia libraries multimedia (for users of open source multimedia) - Open source Mesa 3D multimedia libraries workstation (for users of legacy WS applications) - Open source multimedia libraries - Closed source (legacy) OpenGL rocm (for users and developers requiring full ROCm stack) - OpenCL (ROCr/KFD based) runtime - HIP runtimes - Machine learning framework - All ROCm libraries and applications wsl (for using ROCm in a WSL context) - ROCr WSL runtime library (Ubuntu 22.04 only) rocmdev (for developers requiring ROCm runtime and profiling/debugging tools) - HIP runtimes - OpenCL runtime - Profiler, Tracer and Debugger tools rocmdevtools (for developers requiring ROCm profiling/debugging tools) - Profiler, Tracer and Debugger tools amf (for users of AMF based multimedia) - AMF closed source multimedia library lrt (for users of applications requiring ROCm runtime) - ROCm Compiler and device libraries - ROCr runtime and thunk opencl (for users of applications requiring OpenCL on Vega or later products) - ROCr based OpenCL - ROCm Language runtime openclsdk (for application developers requiring ROCr based OpenCL) - ROCr based OpenCL - ROCm Language runtime - development and SDK files for ROCr based OpenCL hip (for users of HIP runtime on AMD products) - HIP runtimes hiplibsdk (for application developers requiring HIP on AMD products) - HIP runtimes - ROCm math libraries - HIP development libraries openmpsdk (for users of openmp/flang on AMD products) - OpenMP runtime and devel packages mllib (for users executing machine learning workloads) - MIOpen hip/tensile libraries - Clang OpenCL - MIOpen kernels mlsdk (for developers executing machine learning workloads) - MIOpen development libraries - Clang OpenCL development libraries - MIOpen kernels asan (for users of ASAN enabled ROCm packages) - ASAN enabled OpenCL (ROCr/KFD based) runtime - ASAN enabled HIP runtimes - ASAN enabled Machine learning framework - ASAN enabled ROCm libraries 怎么执行全部安装
06-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值