【发布时间】:2011-09-30 03:14:08
【问题描述】:
我正在使用大小为 8000 万的键值 int 数组进行 sort_by_key。
该设备是具有 2GB VRAM 的 GTX 560 Ti。可用时(免费)
sort_by_key 之前的内存是1200MB,它在200ms 中完成排序。
但是,当可用内存下降到600MB 时,
相同的键值数组采用1.5-3s!
我在 Compute Visual Profiler 下运行该程序。我发现GPU
时间戳在sort_by_key 之前的最后一个内核之间跳跃 1.5-3s
以及sort_by_key 中的第一个内核调用(这是一个
RakingReduction)。
我怀疑在sort_by_key 内部进行了内存分配,
在它调用它的第一个内部内核之前。 sort_by_key的记忆
需求可用(即使可用内存为600MB),因为
sort_by_key 有效,即使它速度较慢。我看到电脑
发生这种情况时冻结 1 秒。我还看到 CPU 有一个凸起
物理内存图表,如果我保持 Process Explorer 打开。
我能做些什么来让sort_by_key 工作得一样快吗
什么时候可用内存较少?此外,两者之间发生了什么
导致内存碰撞和临时的设备和主机
结冰?
【问题讨论】: