gpt4 book ai didi

cuda - CUDA 内核参数

转载 作者:行者123 更新时间:2023-12-03 03:28:45 25 4
gpt4 key购买 nike

针对特定线程配置调用CUDA内核时,是否有严格的规则内核参数应该驻留在哪个内存空间(设备/主机)以及它们应该是什么类型?

假设我使用

启动一维线程网格
kernel<<<numblocks, threadsperblock >>> (/*parameters*/)

我可以传递一个整数参数int foo,它是一个主机整数变量,直接进入CUDA内核?或者我应该将cudaMalloc内存存储为单个整数,例如dev_foo,然后将cudaMemcpyfoo放入devfoo code> 然后将 devfoo 作为内核参数传递?

最佳答案

内核参数的规则是 C++ 参数传递规则以及设备和主机内存在物理上分离的事实的逻辑结果。

CUDA 不允许通过引用传递参数,您必须小心使用指针。

具体来说,您必须按值传递参数。传递用户定义类型要求默认复制构造函数或您自己的复制构造函数(如果存在)不包含任何内存分配(带有“new”或“malloc”的堆分配)。

总之,按值传递非常适合整数、浮点或其他基本类型,以及简单的平面用户定义结构或类对象。

关于cuda - CUDA 内核参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8302506/

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