使用OpenGL,结果是否取决于安装的硬件或驱动程序?
我按照此处的说明使用 OpenGL 遮挡进行渲染:(https://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch29.html)
我在 Jupyter(它使用“Cirrus Logic GD 5446”作为 GPU,一个 25 岁的 PCI 图形芯片,在 VM 架构师 JupyterHub 上模拟)和本地机器(使用 GeForce 840M)上运行相同的代码。
该代码适用于两种环境,但是,为每个面生成的像素数量略有不同。本地执行更准确一点,运行速度也快了两倍。
是否有可能在所有机器上实现类似的性能和结果,或者这不是我们掌握的东西?
回答
OpenGL 规范对再现性(Invariance)非常清楚:
https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf附录 A
相同的结果仅适用于相同实现上的相同操作序列。仅更改一项操作,否则实现和结果可能会有所不同。