在我的一个项目中,我使用的是低功耗Athlon 5350 CPU(AMD称为APU)。它有4' normal'核心和128' Radeon'核心。计算机运行基于文本的Linux发行版。在顶部我运行我的应用程序,它执行一些计算(在数学上非常复杂)。
我想知道是否可以通过将部分应用程序委托给OpenCL来提高应用程序性能。这完全是假设的,因为我根本不了解OpenCL。
我的问题是:
答案 0 :(得分:1)
当您在CPU上运行代码时,它不需要对操作系统做很多事情,它主要取决于程序的多线程程度。例如,如果您的应用程序根本不使用多线程,那么您将作为单个线程程序运行,操作系统不会将您保存在此处。这实际上是OpenCL的优势之一,因为它可以为您提供并行性,而且我相信AMD,与英特尔相同,它可以同时用于CPU和GPU,因此您可以在CPU上运行OpenCL程序或GPU和它将使用多线程。
当然,某些应用程序(如浏览器)可能正在使用硬件加速(通常是指图形设备)来完成其任务。例如,Safari还会通知您它是否将使用您的系统离散GFX或集成的GFX(here)
系统确实有一个热限制点,并且如果设备(根据优先级方案)使其达到任何这些限制(例如,您密集使用GPU),系统确实需要限制一个限制点,如果GPU处于空闲状态,您可能无法在CPU上使用高时钟。话虽如此,如果你没有真正集中使用这两种设备,不要过于担心。
性能期望需要更多地了解实际的AMD内核。