问题标签 [mali]

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 投票
0 回答
78 浏览

android - 为什么 ARCore 与 ARM Graphics Analyzer 集成会引发致命错误?

我正在尝试将 ARM 的图形分析器与具有 Mali-T830 GPU 的无根三星 SM-A320FL 一起使用。

只是为了让事情顺利进行,我正在尝试分析来自 Google 的 ARCore SDK 的示例应用程序,并进行了最小的更改。我采用了“hello_ar_c”示例并将图形分析器库 (System.loadLibrary("AGA")) 的加载添加到主要活动中,将相关目录添加到 jniLibs.srcDirs,并安装了 AGA.apk。abiFilters 设置为“arm64-v8a”、“armeabi-v7a”。

在运行应用程序时,我收到以下错误:

不确定如何解决这个问题,因为 ARCore 和图形分析器集成都是封闭的 SDK。

非常感谢您的时间。

编辑:
测试的 ARM 图形分析器版本是 5.3.0.82c6d532。
测试的 ARCore SDK 版本为 1.11.0。

0 投票
1 回答
392 浏览

opencl - 在 OpenCL 1.2 中使用 cl_arm_import_memory 扩展的零复制缓冲区 - arm mali midgard GPU

我希望分配一个向量并使用它的数据指针在 GPU 上分配一个零复制缓冲区。有这个 cl_arm_import_memory 扩展可用于执行此操作。但我不确定它是否支持所有 mali midgard OpenCL 驱动程序。

我正在浏览这个链接 ,我对以下几行感到非常困惑:-

如果扩展字符串 cl_arm_import_memory_host 被公开,则支持从正常的用户空间分配(例如通过 malloc 创建的那些)导入。

这些线到底是什么意思?我专门研究 Rockchip 的 RK3399 板。请帮忙。

0 投票
2 回答
217 浏览

opencl - arm mali midgard gpus上的零复制缓冲区分配?

我希望 arm mali midgard gpus 和 arm cpus 上的 opencl 缓冲区具有零复制行为,以便向量的数据指针和 clBuffer 在其生命周期内指向相同的位置。

我尝试过的一些事情。我为向量编写了一个自定义分配器(64 字节对齐),然后我尝试使用 cl_arm_import_memory 函数并将向量的指针传递给该函数。但问题是当我查询设备 EXT 属性时,我只看到 cl_arm_import_memory 字符串而不是 cl_arm_import_memory_host 字符串。

我还尝试先分配一个 gpu 端缓冲区,然后强制一个向量指向缓冲区的位置。但是根据 Mali guide ,gpu 端缓冲区的位置可能会发生变化,因此它可能会在多个映射期间指向不同的地址。

所以,我的问题是在 std::vector 和 OpenCL 缓冲区之间实现零复制行为的最佳方法是什么。

0 投票
1 回答
215 浏览

arm - Arm Mali GPU 中的点积是否比 MAD(乘加)指令更快?

我发现点积与向量加法、向量 mul 的循环相同(每个 ALU 每个核心只有一个循环),但不是疯子。所以我很好奇疯狂指令有多少个周期。

0 投票
1 回答
175 浏览

android - 分析 Android 设备上的内存使用情况(堆、堆栈、GPU 的 OpenCL 缓冲区)

我正在尝试精确测量我的应用程序使用的内存总量。我正在开发一个在电话设备上利用 GPU 的 .so 库。我在开发中主要使用 C/C++ 和 OpenCL,因此,我所有的内存分配都是new/deleteor 或clCreateBuffer/clReleaseMemObject.

准确地说,我正在寻找以下值:

  1. 堆上使用的总内存
  2. 堆栈上使用的总内存(如果可能)
  3. 用于 OpenCL 缓冲区的总内存

我做了什么:

我曾经dumpsys使用以下命令收集一些数字:

adb shell dumpsys meminfo com.example.hellolibs.debug -d

而且,我还编写了一些简单的分析代码来跟踪所有 OpenCL 缓冲区分配/释放(我正在跟踪底层 OpenCL 缓冲区的引用计数器)。我使用分析代码测量的总内存使用量大于dumpsys使用上述命令报告的内存使用量。不应该是这样的,对吧?

我的目标平台是:带有 Mali GPU 的 ARM CPU

0 投票
1 回答
440 浏览

ffmpeg - 视频显示/解码/编码程序如何支持 ARM GPU?

我经常看到基于 ARM 的芯片宣传板载 GPU,例如带有“Broadcom VideoCore IV @ 250 MHz”的 RPI3 和带有“Mali-450 GPU”的 OdroidC2。这些芯片宣传诸如“解码 4k/30FPS、编码 1080p、30FPS”之类的东西作为 GPU 编码和解码视频的能力。

我的问题是——像 Kodi、VLC 或 FFMPEG 这样的程序是如何利用这些 GPU 进行实际编码和解码的?例如,当我研究如何使用 Mali-450 GPU 时,我发现了一些深奥且记录不充分的 C 示例,它们将压缩帧发送到 GPU 并获取解码帧。如果我要使用像 OdroidC2 这样的设备并在其上安装 VLC,VLC 如何利用 GPU?是否有人必须将逻辑写入 VLC 以使用 Mali GPU 公开的特定编码/解码 API 才能使用它,或者这些 GPU 是否遵循所有 GPU 公开的某种一致的 API,而 VLC/Kodi 可以针对这个系统API?

我问这个问题的原因是 VLC 和 Kodi 倾向于支持这些 GPU 开箱即用,但是像 FFMPEG 这样以支持尽可能多的编解码器和加速器而自豪的非常流行的程序不支持 Mali GPU系列。为什么 VLC/Kodi 支持编码/解码而不是 FFMPEG?如果这些 GPU 难以编程并且必须使用他们定制的深奥 API 而不是 libavcodec 之类的东西,为什么这些制造商声称支持疯狂的解码和编码?

我希望我的问题是有道理的,我想我很好奇的是,大多数系统上的 GPU,无论是英特尔高清显卡、Nvidia 卡、AMD 卡等,似乎都被大多数视频播放器自动使用,但是当涉及到对这些设备使用 FFMPEG 之类的东西,过程变得更加复杂,您需要自定义编译构建并提供特殊标志以按预期使用设备。我在这里缺少什么吗?VLC 是否经过编程以利用所有这些不同类型的 GPU?在这种情况下,为什么 FFMEPG 不支持开箱即用的 Mali GPU?

0 投票
0 回答
304 浏览

python - 在 ODROID XU4 上与 Python OpenCV/OpenCL 共享 GPU/CPU 数据

我正在使用 OpenCV 4.1 和 Python 3.6 在 ODROID XU4(带有 Mali-T628 GPU 的三星 Exynos5422)上进行实时视频处理。我可以通过将包含我的图像的 Numpy 数组转换为 UMat 来使用 GPU,例如:

这样一来,图像处理代码的运行速度就会比在 CPU 上运行得更快;但是,与 GPU 之间的传输需要很长时间(在某些情况下约为 0.03 秒)。有没有办法解决?

我是 GPU 编程的新手,在这里第 8.3 节一直摸不着头脑。我不知道默认的“cv2.UMat(array)”初始化程序是如何分配内存的,所以我尝试指定它,例如

但是当我这样做时,不会抛出任何错误并且 host_mat 是空的。我做错了什么,还是我完全走错了路?任何建议表示赞赏。

0 投票
1 回答
45 浏览

graphics - 用于非 Android 嵌入式系统的 GPU / 图形分析器

我有一个使用基于嵌入式 Linux 的操作系统的非 Android 嵌入式系统。它有一个 Mali GPU,我需要分析 GPU 性能。一些选项是 DS5 Streamline 和 Mali Graphics 调试器,但它似乎是为 Android 量身定制的(带有 adb)。我可以使用任何通用的 GPU 分析工具吗?

0 投票
0 回答
34 浏览

graphics - 无法使用 nvidia 驱动程序运行 Mali-cube 应用程序。每次都会调用 Mesa 库

我正在尝试设置 Mali opengl es 模拟器(3.0.4)。但是每当我尝试运行随 mali 模拟器 (mali-cube) 一起提供的示例应用程序时,我都会得到以下输出:

GL 渲染器:[llvmpipe(LLVM 10.0.0,256 位)]

GL 供应商:[VMware, Inc.]

GL 版本:[3.1 Mesa 20.2.0-devel (git-90c34ae 2020-06-09 bionic-oibaf-ppa)]

GL 着色语言版本:[1.40]

运行:Mali OpenGL ES Emulator 3.0.4-2-g8d905

在我的系统中已经安装了 nvidia 显卡,但它没有被使用。如何配置我的系统以便调用 nvidia 图形驱动程序而不是 mesa 库。

注意:我正在远程访问我的系统。它会引起任何问题吗?如果是,那么解决方案是什么?我正在使用 vnc 进行远程登录。

0 投票
1 回答
140 浏览

tensorflow - 使用 Mali GPU 完全委托 BERT 模型

我正在尝试使用 TensorflowLite 在 Mali GPU 上部署 BERT 和 Transformer 模型。但问题是TensorflowLite不支持这些模型中的一些操作,包括{CAST, GATHER, MUL, RESHAPE, UNPACK}。有谁知道我如何在 GPU 上委派这些操作?是否有任何其他 TensorflowLite 库可以支持嵌入式 GPU,特别是 Mali GPU?我只想测量它们在 GPU 上的延迟。