这里尝试将工作中遇到的一些用于CPU计算消耗优化的技术手段汇总到一起,方便需要的时候查询使用。
1. ISPC
ISPC是Implicit SPMD(single program multiple data) Program Compiler的缩写,可以看成是CPU版本的Shader(SIMD特点),相对于传统的手动实现的sse、avx而言,这种技术可以使得代码编写更加具有可读性(通过C语言完成,之后交由编译器翻译成对应的SIMD代码),能够支持目前所需要支持的绝大多数平台(部分平台如arm支持还存在一定的问题),目前在UE的众多离线特性如贴图压缩、lightmass的embree以及运行时计算特性如chaos & animation上都有尝试应用,具体参考文献[1][2]。
2. 移动端大小核架构
移动端CPU设计的两大目标是高性能与低消耗,在这个目标下,ARM提出了大小核的CPU架构,这是一种由两种不同的核组成的异构CPU架构,其中大核具有较强性能,但是也会导致较高消耗,通常用于处理一些重度计算工作,小核性能较弱,同时消耗也较低,通常用于处理一些轻度计算工作,大小核架构中的两种核共享的是同一套指令集架构,详细的信息可以参考[3]。
未完待续
参考文献
[1] [gdc20]ISPC in UnrealEngine4
[2] ISPC In Unreal Engine 4: A Peek Behind The Curtain
[3] big.LITTLE Technology: The Future of Mobile
网友评论