将动态结构数组传递给GPU内核

时间:2015-05-05 14:00:30

标签: c++ cuda structure dynamic-memory-allocation

我尝试将我的动态结构数组传递给内核,但它不起作用。我得到 - “分段错误(核心转储)”

我的代码 - 已编辑

    add_action('wp_head','head_code');

function head_code()
{

$output = '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>';    
$output .= '<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>'; 
$output .= '<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>';

echo $output;

}

我应该如何正确分配gpu内存并将数据复制到此内存?

2 个答案:

答案 0 :(得分:4)

您需要为结构成员array分配内存。

Test *test = malloc(sizeof(Test)*n);
for(int i = 0; i < n; i++)   
    test[i]->array =  malloc(size);  

我建议在解决此问题后阅读this answer以解决其他问题。

答案 1 :(得分:2)

你的卡是什么?如果您的卡支持计算能力&gt; = 3.0,请尝试统一内存系统,在主机/设备内存中使用相同的数据

你可以看看here :

它应该看起来像这样:

GDB

我希望你知道,但别忘了给cudaFree&amp;在已分配的内存上删除/释放。 (最好使用std :: vector并使用data()访问原始指针)