问题标签 [amd-app]
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.
c++ - AMD GPU 的 OpenCL 时间测量问题
我最近比较了两种做内核运行时测量,我看到了一些令人困惑的结果。
我使用带有集成 GPU 和 Ubuntu Linux ( CL_PLATFORM_VERSION
is ) 的 AMD Bobcat CPU (E-350 OpenCL 1.2 AMD-APP (923.1)
)。
基本的 gettimeofday 想法如下所示:
这表示内核需要大约 5466 毫秒。
我用clGetEventProfilingInfo
for QUEUED
/ SUBMIT
/ START
/进行的第二次测量END
。
使用 4 个时间值,我可以计算在不同状态下花费的时间:
- 排队时间:0.06 毫秒,
- 提交时间:2733 毫秒,
- 执行时间:2731 ms(实际执行时间)。
我看到它加起来是 5466 毫秒,但是为什么它会在一半的时间内保持提交状态?
有趣的是:
提交状态始终是实际执行时间的一半,即使对于不同的内核或不同的工作负载(因此它不能是恒定的设置时间),
对于 CPU,提交状态的时间为 0,执行时间等于 gettimeofday 结果,
我在 Intel Ivy Bridge 上使用 CPU 和 GPU 在 Windows 上测试了我的内核,但我没有看到那里的效果。
有人有线索吗?
我怀疑 GPU 运行内核两次(导致 gettimeofday 是实际执行时间的两倍)或者函数 clGetEventProfilingInfo 对于 AMD GPU 无法正常工作。
opencl - AMD GPU 上的 OpenCL 2.0
我正在尝试在 AMD Fury X 上初始化 OpenCL 2.0,我正在查看__OPENCL_VERSION__
. 无论如何都是120。我正在查看我的驱动程序和两者的内部,#define __OPENCL_VERSION__ 120
并且#define __OPENCL_VERSION__ 200
可以在那里找到。
是否需要在某处有一个特殊标志才能启用 2.0 版?我有以下平台和设备:
Advanced Micro Devices, Inc. 的 OpenCL 平台 'AMD Accelerated Parallel Processing',版本 OpenCL 2.0 AMD-APP (1912.5),FULL_PROFILE
设备:Advanced Micro Devices, Inc. 'Fiji'(驱动程序版本:1912.5 (VM))
OpenCL 版本: OpenCL 2.0 AMD-APP (1912.5)
OpenCL“C”版本:OpenCL C 2.0
编辑
啊,傻。似乎有助于-cl-std=CL2.0
在clCreateProgramWithSource
. 这应该是预期的行为吗?
opencl - AMD APP SDK (OpenCL) 未检测到 AMD CPU
我在装有 OpenSUSE Leap x86_64 的 PC 上安装了 AMD FX-8350 CPU 和 NVIDIA GeForce GTX 960 GPU。我想在上面使用 CUDA 和 OpenCL,所以我首先安装了 Cuda Toolkit 7.5。那工作得很好。
然后,我安装了 AMD APP SDK 3.0,因为我想在 AMD CPU 上运行 OpenCL。看起来效果很好。$AMDAPPSDKROOT
回声/opt/AMDAPPSDK-3.0
和$LD_LIBRARY_PATH
回声/opt/AMDAPPSDK-3.0/lib/x86_64/
。
之后,我使用以下命令编译并运行了一个基本的 deviceQuery 代码(基本上是这个,但修改为显示平台名称):
代码编译并执行,但输出仅显示 NVIDIA GPU 信息。
我似乎找不到任何解决方案。问题可能是什么?
linux - OpenCL 内核在哪个 CPU 处理器上运行
我想确切地确定 AMD 如何在 CPU 上安排其 OpenCL 内核,但我找不到任何 OpenCL 函数来确定它正在运行的物理处理器/内核 ID。
我只能找到与我的问题相关的以下链接:
我尝试了上述方法,但没有一个解决方案有效。我看到 OpenCL 内核不支持像 stddef.h 这样的 C99 头文件,这是 sched.h 甚至 fopen() 所必需的。
有什么方法可以让我准确地看到 openCL 内核是如何分配给每个 CPU 内核/处理器的?
注意:我使用的是 Ubuntu 14.04、gcc 版本 4.8.2 和 AMD APP SDK 3.0。
谢谢你的帮助!
opencl - OpenCL 报告的设备版本在 clinfo / clGetDeviceInfo 之间不同
我只是想深入研究 OpenCL 2.0。我在 Win10-64 上使用 AMD R7 260X GPU 和 AMD APP SDK 3.0(最终版)和最新的驱动程序(Crimson-something,2348.4)和 16GB RAM。编译器是 Visual Studio 2015。
我做的第一件事是使用 clInfo 在我的系统上查询一些信息。输出符合预期,尤其是设备 OpenCL C 版本:
接下来是玩一些来自 AMD APP SDK 的示例。我很快注意到,OpenCL 2.0 没有正确执行。我浏览了代码并注意到一个函数,它使用 clGetDeviceInfo 收集设备信息。此时,报告的设备 OpenCL C 版本(参见屏幕截图 1)与我从 clInfo 获得的不同,因此,需要 OpenCL 2.0 的示例不会执行。
我做错了什么?
opencl - 下载适用于 windows 和 linux 的 OpenCL AMD APP SDK 3.0
我想下载适用于 Windows 和 Linux 的独立版本的 OpenCL AMD APP SDK 3.0。