问题标签 [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.

0 投票
1 回答
489 浏览

c++ - AMD GPU 的 OpenCL 时间测量问题

我最近比较了两种做内核运行时测量,我看到了一些令人困惑的结果。

我使用带有集成 GPU 和 Ubuntu Linux ( CL_PLATFORM_VERSIONis ) 的 AMD Bobcat CPU (E-350 OpenCL 1.2 AMD-APP (923.1))。

基本的 gettimeofday 想法如下所示:

这表示内核需要大约 5466 毫秒。

我用clGetEventProfilingInfofor 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 无法正常工作。

0 投票
1 回答
1115 浏览

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.0clCreateProgramWithSource. 这应该是预期的行为吗?

0 投票
1 回答
1330 浏览

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 信息。

我似乎找不到任何解决方案。问题可能是什么?

0 投票
0 回答
204 浏览

linux - OpenCL 内核在哪个 CPU 处理器上运行

我想确切地确定 AMD 如何在 CPU 上安排其 OpenCL 内核,但我找不到任何 OpenCL 函数来确定它正在运行的物理处理器/内核 ID。

我只能找到与我的问题相关的以下链接:

在 Linux 中使用 C/C++ 获取机器序列号和 CPU ID

如何知道我的代码在哪个物理处理器和哪个物理内核上运行

NUMA 获取当前节点/核心

我尝试了上述方法,但没有一个解决方案有效。我看到 OpenCL 内核不支持像 stddef.h 这样的 C99 头文件,这是 sched.h 甚至 fopen() 所必需的。

有什么方法可以让我准确地看到 openCL 内核是如何分配给每个 CPU 内核/处理器的?

注意:我使用的是 Ubuntu 14.04、gcc 版本 4.8.2 和 AMD APP SDK 3.0。

谢谢你的帮助!

0 投票
1 回答
341 浏览

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 的示例不会执行。

我做错了什么?

clGetDeviceInfo

0 投票
2 回答
34903 浏览

opencl - 下载适用于 windows 和 linux 的 OpenCL AMD APP SDK 3.0

我想下载适用于 Windows 和 Linux 的独立版本的 OpenCL AMD APP SDK 3.0。