1.从指令集层面解释,如何对N卡优化的同时对A卡负优化。
目前两家游戏卡中参与游戏运算主要是FP32和INT32。游戏运算都是浮点指令,设FP 32指令集范围 - XX.XXXX至XX.XXXX。FP 32可以直接正确运算这个范围内所有指令。 而INT 32范围卫 - YY 至 YY。
|YY| > |XX|INT 32 运算浮点指令,会自动无视浮点指令 小数位数字,即当成XX运算。因此其中只有小数位为0,即XX.0000交给int32, int32才可以运算出正确数值。
游戏正常运行同时发出多条XX.XXXX。 其中 小数位非0指令 :小数位为0指令比例 在7:3或者更高的8:2 。 但是N卡FP32和int32数量是1:1。因此N卡就有许多int32闲置,为了提高INT 32利用率,就需要更多XX.0000的指令。于是N的gameworks工作室下场,制作许多包含AA.0000指令集( |AA| ≤ |YY| ),提高Int32利用率,但是当AA.0000大于XX.XXXX,FP32就不可以直接运算,需要同过拆分指令,再由多个FP32进行运算,最后再合并结果。
AMD没有INT32单元,只能通过FP32间接运行许多AA.0000,多个FP32只能执行一条指令的运算得出一个正确数值。这样大大降低AMD的FP32效率。进而实现对A卡的负优化。

目前两家游戏卡中参与游戏运算主要是FP32和INT32。游戏运算都是浮点指令,设FP 32指令集范围 - XX.XXXX至XX.XXXX。FP 32可以直接正确运算这个范围内所有指令。 而INT 32范围卫 - YY 至 YY。
|YY| > |XX|INT 32 运算浮点指令,会自动无视浮点指令 小数位数字,即当成XX运算。因此其中只有小数位为0,即XX.0000交给int32, int32才可以运算出正确数值。
游戏正常运行同时发出多条XX.XXXX。 其中 小数位非0指令 :小数位为0指令比例 在7:3或者更高的8:2 。 但是N卡FP32和int32数量是1:1。因此N卡就有许多int32闲置,为了提高INT 32利用率,就需要更多XX.0000的指令。于是N的gameworks工作室下场,制作许多包含AA.0000指令集( |AA| ≤ |YY| ),提高Int32利用率,但是当AA.0000大于XX.XXXX,FP32就不可以直接运算,需要同过拆分指令,再由多个FP32进行运算,最后再合并结果。
AMD没有INT32单元,只能通过FP32间接运行许多AA.0000,多个FP32只能执行一条指令的运算得出一个正确数值。这样大大降低AMD的FP32效率。进而实现对A卡的负优化。
