问题标签 [codexl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gpu - CodeXL 支持哪些 GPU?
现在 CodeXL 是开源和公开开发的,我希望它支持的不仅仅是 AMD GPU。这是真的?
CodeXL 支持哪些 GPU?
linux - 在 CodeXL 之外运行 Qt 应用程序可以正常工作,但在 CodeXL 中它会崩溃
我的 Qt 应用程序在 Linux (Ubuntu) 下的 CodeXL 调试器中运行时崩溃,为什么会这样?
当它崩溃时,顶部堆栈帧被选中,并显示消息“raise.c was not found”。
qt - 根据 CodeXL,我没有成功禁用 Qt 中的 ANGLE 层
我已经非常小心地禁用了我的 Qt 应用程序中的 ANGLE 层,但显然它没有发生。当我在 CodeXL 调试器中运行应用程序时,事件日志包含如下行:
加载的 DLL:C:\Windows\SysWOW64\d3d11.dll
所以它正在加载 Direct3D,我认为这在 Qt 中只能通过 ANGLE 发生。在 CodeXL 中点击“Break”按钮也无济于事,这对我来说意味着没有发生真正的 OpenGL 调用,它们仅被转换为 D3D。
事件日志还说:
调试字符串:加载 opengl32.dll 失败(找不到指定的模块。)
为什么会发生这种情况,我该如何解决?
我想禁用 ANGLE 的原因是因为否则我无法使用 CodeXL 进行调试(它不支持 D3D 调试)。
我的系统:
- 视窗 10
- 第一个 GPU:Intel HD Graphics 5500
- 第二个 GPU:AMD Radeon R5 M330(我认为这是我的应用程序使用的)
我的代码:
主.cpp:
main.qml:
Z:/disable_angle.txt :
debugging - Give names to textures for debugging
I'm using CodeXL to debug my OpenGL app. I'm pausing the app in CodeXL and looking through the texture list. That works fine but the textures in the list are named only like "Texture <some_number_here>
". I want to programatically assign names to the textures so they're easier to browse. Is this possible?
I've googled and found glObjectLabel but this requires OpenGL 4.3 and I only have access to 3.0 on this PC. I could try to install better drivers to get access to higher versions but before I mess with that, I'd like a confirmation that glObjectLabel will help for my case (for CodeXL, and it would be nice if it's supported by other GPU debuggers too).
c++ - OpenCL 嵌套循环错位
我正在尝试使用 GPU 进行一些图像处理。在我的内核函数中,我捕获了“未对齐”异常
线程试图在不提供对齐的硬件上读取或写入未对齐的数据。例如,16 位值必须在 2 字节边界上对齐;4 字节边界上的 32 位值,依此类推。
我将内核代码减少为仅循环,但我仍然遇到了这个问题。我减少的核函数:
(程序在第二个循环中抛出异常)
我正在使用 C++ 包装器来调用我的内核
oImage
并且iImage
是cl::Buffer
saturation
是float
header.GetVal()
返回int
我正在使用带有 CodeXL 插件的 Visual Studio 2015 并在 AMD Spectre(Radion R7)上运行该程序。
什么会导致这个问题?
performance - OpenCL 内核上的 GPU 性能缓慢
我对在 AMD GPU(夏威夷核心或 Radeon R9 390)上使用 OpenCL 的一些性能感到有点不知所措。
操作如下:
- 将内存对象 #1 发送到 GPU
- 执行内核#1
- 将内存对象 #2 发送到 GPU
- 执行内核#2
- 将内存对象 #3 发送到 GPU
- 执行内核#3
依赖是:
- 内存对象 #1 上的内核 #1
- 内存对象 #2 上的内核 #2 以及内核 #1 的输出内存
- 内存对象 #3 上的内核 #3 以及内核 #1 和 #2 的输出内存
内存传输和内核执行在两个独立的命令队列中执行。命令依赖由 OpenCL 中定义的 GPU 事件完成。
整个操作现在循环,只是为了使用相同的输入数据进行性能分析。
正如您在时间线中看到的,主机在 GPU 上等待很长时间才能完成 clWaitForEvents(),而 GPU 大部分时间都处于空闲状态。您还可以看到重复的操作。为方便起见,我还提供了所有已发布 OpenCL 命令的列表。
我现在的问题是:
为什么GPU闲置这么多?在我的脑海中,我可以轻松地将所有“蓝色”项目组合在一起并立即开始操作。内存传输为 6 GB/s,这是预期的速率。
为什么内核执行得这么晚?为什么内核 #2 和内核 #3 执行之间存在差距?
为什么内存传输和内核不并行执行?我使用 2 个命令队列,只有 1 个队列,性能更差。
只需将所有命令放在我的脑海中(当然要保持依赖关系,所以第一个绿色必须在第一个蓝色之后开始),我可以将性能提高三倍。我不知道为什么GPU如此缓慢。有没有人有一些见识?
一些数字运算
- 内存传输 #1 为 253 µs
- 内存传输 #2 为 120 µs
内存传输#3 为 143 µs - 由于未知原因,它总是太高,它应该是 #2 的 1/2 或在 70-80 µs 范围内
内核 #1 为 74 µs
- 内核 #2 为 95 µs
- 内核 #3 为 107 µs
因为内核 #1 比内存传输 #2 快,内核 #2 比内存传输 #3 快,所以总时间应该是:
- 253 µs + 120 µs + 143 µs + 107 µs = 623 µs
但 clWaitForEvents 是
- 1758 µs - 或大约 3 倍
是的,有一些损失,我可以接受 10% (60 µs),但 300% 太多了。
opencl - clinfo.exe 崩溃并出现错误
clinfo.exe 错误 我不知道如何解决。在运行命令 clinfo 之前,我可以使用 CodeXL Teapot 示例并对其进行调试和分析。在我运行 clinfo 命令后,CodeXL Teapot 示例也崩溃了。当我卸载AMD APP SDK 3.0时,clinfo命令没有错误,CodeXL也恢复了。我的系统是 windows 10 X64,GPU 是 AMD FirePro W7100,AMD APP SDK 是 X64。谁能给我一些建议?
opencl - CodeXL 无法运行 GPU 配置文件
我编写了一个 OpenCL 程序并想用 codeXL 对其进行分析。但是 GPU : Performance Counters 不起作用。该程序是一个非常简单的矢量添加示例,它在 Visual Studio 2017 上正常运行。codeXL 显示无法打开 vecAdd.cl,无法从源代码创建 CL 程序。很奇怪,谁能给我一些建议?操作系统是windows 10 x64 pro,codeXL 2.5.67,AMD FirePro w7100,amd app sdk 3.0 x86。
vecAdd.cl 如下:
__kernel void vector_add(global const float *a, global const float *b, global float *result) {
}
opencl - CodeXL 在 clCreateContext 期间崩溃
我正在尝试使用带有 amdgpupro 驱动程序的 Ubuntu 16.04 下的 CodeXL 2.5。
当 opencl add(又名 Hellow World)在 CodeXL 中从命令行运行时,它只是崩溃了clCreateContext
你知道如何让 GPU 分析(性能计数器工作)吗?CodeXL 的任何替代品?
python - 如何使用 CodeXL 分析 pyopencl 代码?
现在是否可以使用 CodeXL 或另一个图形分析器来监视使用 pyopencl 为 python 脚本编写的 OpenCL 内核的执行?我发现只能在可执行文件上使用 CodeXL,而 python 脚本不是。如果它最终对您的答案很重要,那么我所有的 python 模块都安装在 Anaconda 环境中。
在使用 GPU 分析器(例如 CodeXL)和 PyOpenCL中已经提出了一个类似的问题,但答案作为一个链接出现在那里,现在无处可去。