当我从OpenCL设备读取设备信息时,如何计算其处理能力有多好?
要添加更多信息,假设我想对图像的像素执行一个非常简单的任务,据我所知(可能不对!)当我在GPU上运行内核时,opencl运行它与GPU中的不同处理单元并行,我可以将内核视为并行运行的线程主体。
如果这是正确的,那么对于我的简单任务,我需要找到具有更多处理单元的设备,以便我的内核在它们上运行,因此更快完成。我错了吗?
如何根据处理能力找到合适的设备?
答案 0 :(得分:1)
计算OpenCL设备中的处理器数量不足以了解它的性能,原因有很多:
不同的处理器可能具有非常不同的频率(以MHz / GHz为单位)
不同的处理器可以具有非常不同的架构,例如在硬件中实现的无序,多标量函数
不同的OpenCL设备可以使用不同类型的内存,这在很大程度上会影响整体性能
OpenCL设备可以与主CPU,分立外设板或网络集成。延迟以及同步或复制内存的需求将影响性能。
不同的算法支持不同的体系结构,因此对于一种算法,一种设备可能比另一种设备更快,但对于不同的算法可能不同。
我不建议使用处理器数量作为衡量效果的指标。最好的方法是使用特定算法进行基准测试。