- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一台配备 AMD Ryzen 5 2500u(集成了 radeon vega 8 移动 GPU)处理器的笔记本电脑,并使用 Ubuntu 18.04.2。我想在 CPU 和 GPU 上使用 C++ 运行一些 OpenCL 计算。我的问题是我不确定 opencl 如何识别 cpu。
我已经从 amd 网站和 AMD APP SDK 3.0 安装了 amdgpu-pro。运行 clinfo 后,我得到以下输出:
Number of platforms 2
Platform Name Clover
Platform Vendor Mesa
Platform Version OpenCL 1.1 Mesa 18.2.8
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd
Platform Extensions function suffix MESA
Platform Name AMD Accelerated
Parallel Processing Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.1 AMD-APP (2671.3)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Host timer resolution 1ns
Platform Extensions function suffix AMD
Platform Name Clover
Number of devices 1
Device Name AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)
Device Vendor AMD
Device Vendor ID 0x1002
Device Version OpenCL 1.1 Mesa 18.2.8
Driver Version 18.2.8
Device OpenCL C Version OpenCL C 1.1
Device Type GPU
Device Profile FULL_PROFILE
Device Available Yes
Compiler Available Yes
Max compute units 8
Max clock frequency 1100MHz
Max work item dimensions 3
Max work item sizes 256x256x256
Max work group size 256
Preferred work group size multiple 64
Preferred / native vector sizes
char 16 / 16
short 8 / 8
int 4 / 4
long 2 / 2
half 8 / 8 (cl_khr_fp16) float 4 / 4
double 2 / 2 (cl_khr_fp64)Half-precision Floating-point support (cl_khr_fp16)
...
Platform Name AMD Accelerated Parallel Processing
Number of devices 1
Device Name gfx902
Device Vendor Advanced Micro Devices, Inc.
Device Vendor ID 0x1002
Device Version OpenCL 1.2 AMD-APP (2671.3)
Driver Version 2671.3 (PAL,HSAIL)
Device OpenCL C Version OpenCL C 1.2
Device Type GPU
Device Board Name (AMD) Unknown AMD GPU
Device Topology (AMD) PCI-E, 05:00.0
Device Profile FULL_PROFILE
.......
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform
clCreateContext(NULL, ...) [default] No platform
clCreateContext(NULL, ...) [other] Success [MESA]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1)
Platform Name Clover
Device Name AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1)
Platform Name Clover
Device Name AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1)
Platform Name Clover
Device Name AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)
带有设备“AMD RAVEN (DRM 3.26.0, 4.18.0-16-generic, LLVM 7.0.0)”的第一个平台“Clover”具有设备类型“GPU”,第二个平台带有设备“gfx902”似乎也是我系统的 GPU。
所以我的问题是:我必须安装什么才能让 opencl 也识别我系统的 cpu?
感谢您的帮助!
最佳答案
将 CPU 与 OpenCL 结合使用自然需要支持 CPU 的 OpenCL 实现。特别是POCL应该可用。 AMD 似乎已经放弃了他们的 CPU OpenCL 实现,而英特尔声称他们的 OpenCL 仅适用于他们的处理器品牌。
顺便说一句,如果尝试将工作自动分配给所有设备,则为同一设备(例如 Clover 和 APP)混合 OpenCL 实现可能会产生令人惊讶的结果。如果您可以指定要使用的设备应该没问题。
关于ubuntu - 如何在 Ubuntu 上为 AMD Ryzen Mobile CPU 安装 opencl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55344123/
AMD 似乎是按需加载 javascript 模块的最佳实践。 这应该适用于用户仅使用一部分可用功能的大型网络应用程序。 我读过有关优化器的信息,它将所有必需的模块连接到一个文件中,并且我读过有关无优
我在一个项目中使用 requirejs,并且有 2 个模块: a.js:是一个非 AMD 模块,我无法触及其代码 b.js:是我用 define() 函数编写的 AMD 模块。它需要 a.js 才能工
有没有办法导入或注释 Typescript 模块,以便在生成 AMD 兼容模块时自动将外部 AMD 模块作为依赖项包括在内?: tsc --module AMD example.ts 我尝试同时包含一
在我的项目中,有一个自定义第三方库(单个构建文件),他们使用几个非 AMD 和 AMD 文件创建了该库。并且大多数属性直接暴露给窗口对象。在我们的项目中,根据新的要求,我们必须使用 requireJS
我正在尝试创建一个由许多小文件(编译为 JavaScript-AMD 模块的 TypeScript 文件)构建的单个 AMD 库(模块)文件。 问题是: 我在类之间有循环依赖。 ( parent 需要
我有一个库 - 称之为 SomeLib - 它被定义为支持各种模块加载器: (function(global, factory) { if (typeof define === 'functi
一个星期以来,我开始学习如何将 require.js 与 Backbone.js 和 Underscore.js 一起使用。 这是一个非常困难的东西,但 3 天前我读到 Underscore 将不再支
main-bower-files无法抓取backbone-amd和underscore-amd ,有什么想法为什么以及如何解决它吗? gulpfile.js var mainBowerFiles =
我正在尝试使用 perf在我的带有 AMD cpu 的设备上,但我真的找不到任何关于如何获取的信息,比如说,cache-misses来自 AMD。我读到你需要写 -e rNNN ,其中 NNN是事件的
我对 AMD 波前和 OpenCL 的工作组大小的术语有些困惑。 我发现不同的来源做了不同的陈述。 我的问题是:AMDs GCN 技术的波前大小是多少,根据这个:opencl 上的工作组至少应该有多大
我正在尝试使用 Intern 测试 Require.js 项目。我在测试中遇到错误,其中在加载 jQuery 插件时未定义 jQuery。我的加载器配置如下所示: loader: { // A
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
Modernizr 是使用 AMD 定义编写的,这很好,因为这就是我当前项目所使用的,并且可以在需要时引入 Modernizr 依赖项。问题是,Modernizr 模块都需要一个平面文件夹层次结构,但
AMD 不久前宣布推出 Fusion 平台。读了一些相关内容后,我既兴奋又怀疑。例如,它应该使 GPU 和 CPU 共享相同的内存成为可能。 (GPU 和 CPU 都在同一个封装中)现在,由于 GPU
当我从 Android Studio 启动 AVD 时,它长时间显示黑色空白屏幕并且我看不到主屏幕。我查看了 2013 年之前的几个 Stack Overflow 帖子(Virtual Machine
AMD 是否允许您定义一个模块,其导出是动态的,具体取决于其他模块? 我遇到的问题是,即使正文中有 require 调用,define 也会立即返回。这意味着,如果模块的定义依赖于其他模块,则任何依赖
假设我有一个加载模块myModule的应用程序。所述模块需要一些其他资源才能工作(例如模板),因此 myModule 关心加载它所需的资源,这很巧妙。实际上,这很简单: // main.js requ
AMD 规范中是否有任何内容规定必需的模块必须提供相同的对象?假设所需的模块是提供给所有需要的模块的单个实例,这似乎是相当常见的做法,但是有什么可以防止模块加载器将加载的模块仅视为缓存(可能在某个时候
所以我现在一直在使用 require.js,但我意识到我实际上并不知道它在幕后是如何工作的。它说它是一个 AMD 加载器。 我知道 CommonJS 是同步的,这意味着它会在加载时阻止其他代码的执行。
有没有办法从*.ts 中设置编译模块的名称?一些 tsconfig、json 设置或一些可以执行此操作的 Gulp 插件。 目前我得到 define([], function(){ .. }) 但我不
我是一名优秀的程序员,十分优秀!