CPU上的FRED模型通过模型转换步骤映射到GPU上的等效代码
从程序结构的角度来看,利用GPU就得要求FRED中的每个功能在源代码库中都有两个版本;一个版本是专门为CPU编写的,一个版本是专门为GPU编写的。当发出使用GPU的请求时,CPU上的FRED模型通过转换器传递,该转换器将每个FRED特性映射到其等效GPU版本。这种结构的结果是,每个需要GPU支持的FRED功能都必须用专门的GPU代码完全重写。然而,对于给定的FRED MPC版本,并非所有的FRED功能都将具有GPU计算。随着Photon Engineering公司持续对GPU代码的开发,FRED MPC的功能将会随着每一次版本更新而扩展。
非常快?
FREDMPC是否会为我的工作效力?
你是否在追迹庞大数量的光线?
你是否经常计算几天几夜?
你的模型是否是由几千个表面所组成的
如果是的话,那么FREDMPC可能是很有用的。问题是:你的时间多值钱?
FREDMPC正在不断开发,每个版本都将添加新功能。为了帮助确定FREDMPC是否适合您的分析需求,下表列出了当前版本的重要限制。
1. 相干场传输
现在FREDMPC不支持相干场传输
2. 偏振
FREDMPC不支持偏振光线追迹或者偏振分析
3. 数值精度
GPU光线追迹当前是单(浮点)精度,而CPU光线追迹是双精度。这种限制的影响部分取决于系统的规模和结构。比如,由于单精度光线追迹,长传输距离或具有许多交叉点的系统可能更容易受到误差叠加的影响。
并非所有FRED功能都可以用GPU精确实现,这取决于在GPU上表示的结构,可以创建近似的结构。
4. 光线追迹路径
可以根据请求追迹光线路径数据,并指定用户指定的每个路径的最大事件数。路径数据将在光线追迹路径表和杂散光报告中储存。目前尚无能力支持基于路径的光线选择(例如,特定光线路径上的光线的辐照度)或路径重绘。
5. 脚本
当文档被推到GPU时,脚本化的表面、材料、膜层等将被近似。FREDMPC光线追迹和分析功能可以使用FRED的脚本语言执行,但不会在GPU上编译或运行任何脚本。
硬件需求
FREDMPC不是一个独立的产品,它是我们的FRED光学工程软件的一个版本,允许使用GPU执行光线生成,光线追迹和分析。除GPU功能外,FREDMPC License还可以访问FRED Standard和FRED Optimum的所有CPU功能。使用FRED MPC License中包含的CPU功能时,应考虑以下PC配置选项:
Ÿ FRED只运行在Windows上,我们推荐win10
Ÿ FRED Standard在多达17个线程上执行多线程计算,而FRED Optimum最多支持63个线程。FRED不会使用任何超过FRED版本限制的线程。
Ÿ FRED的许多组件(例如BASIC脚本计算和模型更新)不是多线程的。因此,有一个高速处理器是很有用的。在许多情况下,与较大数量的慢速CPU相比,较低数量的快速CPU的性能更好(例如16核3.2GHz vs. 24核2.4GHz)。
Ÿ 我们建议使用16 GB+ RAM,以避免在使用大型光线追迹时可能发生的缓存溢出情况。
Ÿ 有时, 无法避免缓冲(例如,当需要追迹超过可用RAM所能处理的光线时)。因此,具有高磁盘I/O的系统是有好处的。另外推荐使用固态硬盘(SSD)。
GPU要求
FREDMPC需要一个或多个具有3.1或更高计算能力的本地NVIDIA GPU。软件支持多个并行操作的GPU板。
下图显示了已成功用FREDMPC进行测试的各种GPU主板的相对性能,其中GeForce GTX 1050 Ti作为参考,为每个显卡提供相对性能范围,以说明在基准测试期间观察到的结果范围(即一些FRED模型追迹光线比其他模型更快)。例如,Quadro GV100上的基准文件执行速度比GeForce GTX 1050 Ti上的相同文件快2.4到12.6倍。所选GPU的当前价格在图表下侧显示。