gpt4 book ai didi

glsl - GLSL最大指令数

转载 作者:行者123 更新时间:2023-12-03 21:06:57 24 4
gpt4 key购买 nike

片段程序单元中是否要加载最大数量的汇编语言指令?
我有一个从cpu移植到gpu的算法,显然它不适合gpu。

最佳答案

有一些硬性限制和软性限制,其中一些并不立即显而易见:


指令插槽:硬件可以在本地内存中容纳的指令总数。
已执行的指令:将要执行的最大指令数(包括在循环中多次运行的指令)
一条GLSL指令可以映射到十几条或更多条指令
取决于优化程序的质量,多个GLSL指令可以映射为一条指令(例如,乘加,点,勒普)
受限的临时寄存器(仅32个)可能需要比SM4之前的硬件所需的更多指令(对于4096,则没有此类问题)。
如今,繁琐的操作通常不需要花费额外的指令,但是在某些较旧的硬件上却需要这样做,并且在某些情况下也可以在某些硬件上使用(尤其是gl_FragColor是这样的一种选择)
不管实际的指令如何,OpenGL 2.0兼容的硬件仅限于8个依赖纹理的获取(在可以执行OpenGL 2.1或更高版本的硬件上不受限制)


您具有这些保证的最低要求(大多数卡具有更多):


支持OpenGL 2.x(SM3)的硬件上的顶点和像素着色器的512个指令槽

65536条执行的指令

3.x(SM4)硬件上的4096个顶点和65536个像素着色器指令槽

65536执行的顶点着色器指令,无限像素着色器指令

2.x(SM3)硬件上可能至少有24个动态分支
SM4硬件上的完全动态分支(无限制)
只有条件移动可在SM2.x上使用,其他所有内容都必须通过代码复制和循环展开来解决,否则必须失败

关于glsl - GLSL最大指令数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com