2

我正在研究粒子 sim 并且遇到了一些瓶颈,使用 UAV 写入 RWStructured 单浮点缓冲区的速度太慢了大约 10 倍。从实验来看,带宽似乎并不短缺,但访问时间本身就让它陷入困境。追加写入是不可能的,因为传出数据需要按特定顺序排列。这是在 DX10/SM4 硬件上,所以这里有几个问题:有没有办法加快速度(除了写入更大的数据块,因为着色器的输出是不连续的)?如果不是,那么 DX11 级硬件与无人机相比是否更快?

4

1 回答 1

0

首先(如果您还没有这样做的话),要分析您的着色器代码,就是将 GPU 查询添加到您的系统。这是一个解释它的链接:

http://mynameismjp.wordpress.com/2011/10/13/profiling-in-dx11-with-queries/

它在 dx11 中,但功能也在 dx10 中,因此移植应该非常简单。

在计算之后有不同的方面,但第一个是玩:

[numthreads(TGX, 1, 1)]

尝试像 8,16,32,64 这样的值并尝试找到最佳位置(不要忘记在您的调度上进行划分)。

于 2012-09-20T16:05:50.093 回答