gpt4 book ai didi

c++ - 确定推力的最大长度::device_vector

转载 作者:行者123 更新时间:2023-11-30 03:06:31 25 4
gpt4 key购买 nike

有没有办法确定 thrust::device_vector<T> 的最大尺寸?您可以安全地分配?

最佳答案

据我所知,没有一种直接的方法。我通常的做法是做这样的事情:

const size_t MB = 1<<20;

size_t reserved, total;
cudaMemGetInfo( &reserved, &total );
char fail = 0;
while( cudaMalloc( (void**)&pool, reserved ) != cudaSuccess )
{
reserved -= MB;
if( reserved < MB )
{
fail = 1;
break;
}
}

cudaMemGetInfo 返回的总可用内存开始,然后将其递减到“合理”大小(据我所知,在 GT200 时代,GPU MMU 有几个不同的页面大小,最大为 1Mb)。循环一直持续到您获得分配,或者内存如此碎片化或耗尽以至于即使单个页面也会失败。不是很漂亮,但它似乎在 99.999% 的时间内都有效。

关于c++ - 确定推力的最大长度::device_vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com