Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl mipmap可以用来计算点积吗?_Opengl_Gpu_Gpgpu_Metal_Mipmaps - Fatal编程技术网

Opengl mipmap可以用来计算点积吗?

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

假设GPU内存中有2个向量-
a
b
,它们实际上是2D
float
纹理(每像素1个浮点值)。目标是计算点积
a·b

如果我创建第三个纹理-
c
,它包含
a
b
的元素乘积(即
c{ij}=a{ij}×b{ij}
),那么所有像素值的和就是点积

我想我可以让GPU生成1px的
c
-我们称之为
d
。AFAIK
d
c
中所有像素的平均值,如果乘以mipmap的适当LOD,将产生点积

问题

  • 是否可以用上述方法计算点积
  • 这种方法会比通过计算内核计算点积更快吗

对于API的具体例子,让我们考虑一下苹果的金属API或OpenGL/CUDA。

您可能会从MIPRAMP步骤丢失很多精度。我非常怀疑这比执行内核更快。简单的数据排列和重新排序可能会破坏性能。您可能会从mipmapping步骤中损失很多精度。我非常怀疑这会比执行内核更快。简单的数据排列和重新排序可能会降低性能。