gpt4 book ai didi

c++ - 计算 cudaMalloc 的间距,如 cudaMallocPitch

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:03 24 4
gpt4 key购买 nike

简单的问题:是否有可能在不分配内存的情况下计算或获得数组的最佳间距

cudaMallocPitch(void** p, size_t *pitch, size_t width, size_t height) 

我想在不分配内存的情况下获得音高,然后改用函数 cudaMalloc!

(如果想要为 cuda 平台的倾斜分配实现一些缓存分配器,这是至关重要的)

是吗:

// round width to next mulitple of  prop.textureAlignment;  
size_t proper_pitch = ((width / (size_t)device.m_prob.textureAlignment) + 1) * device.m_prob.textureAlignment;

更新:我现在将 proper_pitch 计算为 32/64/128 字节的最小上倍数:我没有尝试过这个,我仍然不知道运行时 API 还能做什么,也许看看已经分配的内存并做一些调整?在 CUDA 编程指南中,对于完全合并的访问,上述是必要的要求(还不够,因为在运行时扭曲需要连续访问)...

// use Cuda Programming Guide Alignmenet (which should be the best i think)
// Upper closest multible of 32/64/128
//size_t upperMultOf32 = ((widthInBytes + 32 - 1)/32)*32; // ((widthInBytes-1)/32 + 1)*32
proper_pitch = std::min(
std::min( ((widthInBytes + 32 - 1)>>5)<<5 , ((widthInBytes + 64 - 1)>>6)<<6 ),
((widthInBytes + 128 - 1)>>7)<<7
);

最佳答案

目前无法获取音高计算。细节可能是特定于硬件版本的,NVIDIA 既没有记录计算,也没有通过 API 公开计算(尽管如前所述,这样做对他们来说是微不足道的)。

如果这对现实世界的用例来说是一个严重的限制,我会建议通过 NVIDIA 注册开发者门户提出错误报告/功能请求。根据我的经验,他们确实会倾听严肃的功能请求。

[此答案主要来自评论并添加为社区 wiki 条目以将此问题从未回答列表中删除]

关于c++ - 计算 cudaMalloc 的间距,如 cudaMallocPitch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193025/

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