Opengl mipmap可以用来计算点积吗?
假设GPU内存中有2个向量-Opengl mipmap可以用来计算点积吗?,opengl,gpu,gpgpu,metal,mipmaps,Opengl,Gpu,Gpgpu,Metal,Mipmaps,假设GPU内存中有2个向量-a和b,它们实际上是2Dfloat纹理(每像素1个浮点值)。目标是计算点积a·b 如果我创建第三个纹理-c,它包含a和b的元素乘积(即c{ij}=a{ij}×b{ij}),那么所有像素值的和就是点积 我想我可以让GPU生成1px的c-我们称之为d。AFAIKd是c中所有像素的平均值,如果乘以mipmap的适当LOD,将产生点积 问题 是否可以用上述方法计算点积 这种方法会比通过计算内核计算点积更快吗 对于API的具体例子,让我们考虑一下苹果的金属API或OpenG
a
和b
,它们实际上是2Dfloat
纹理(每像素1个浮点值)。目标是计算点积a·b
如果我创建第三个纹理-c
,它包含a
和b
的元素乘积(即c{ij}=a{ij}×b{ij}
),那么所有像素值的和就是点积
我想我可以让GPU生成1px的c
-我们称之为d
。AFAIKd
是c
中所有像素的平均值,如果乘以mipmap的适当LOD,将产生点积
问题
- 是否可以用上述方法计算点积
- 这种方法会比通过计算内核计算点积更快吗
对于API的具体例子,让我们考虑一下苹果的金属API或OpenGL/CUDA。
您可能会从MIPRAMP步骤丢失很多精度。我非常怀疑这比执行内核更快。简单的数据排列和重新排序可能会破坏性能。您可能会从mipmapping步骤中损失很多精度。我非常怀疑这会比执行内核更快。简单的数据排列和重新排序可能会降低性能。