Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将所有CUDA功能更改为主机设备___C++_C_Cuda - Fatal编程技术网

C++ 将所有CUDA功能更改为主机设备__

C++ 将所有CUDA功能更改为主机设备__,c++,c,cuda,C++,C,Cuda,我想在CUDA中使用exist函数,但它包含许多类和其他函数。 在每个函数之前添加\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。那么,有没有一种自动的方法可以做到这一点?或者如何让nvcc将所有函数编译为\uuuuu设备\uuuuuuu主机\uuuuuuu?基本上,GPU编程都是关于大规模并行性的。它与普通的单线程编程完全不同。 除非您只想将这些函数同时应用于大型阵列的各个元素,否则

我想在CUDA中使用exist函数,但它包含许多类和其他函数。
在每个函数之前添加
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。那么,有没有一种自动的方法可以做到这一点?或者如何让nvcc将所有函数编译为
\uuuuu设备\uuuuuuu主机\uuuuuuu

基本上,GPU编程都是关于大规模并行性的。它与普通的单线程编程完全不同。 除非您只想将这些函数同时应用于大型阵列的各个元素,否则将其编码到GPU中没有任何好处。 事实上,GPU核心时钟比处理器慢得多。 如果您将以单线程风格将主要针对CPU编写的函数编译到GPU,您将得到潜在的性能损失。
你需要重新思考你的问题到GPU模式中。

基本上,GPU编程都是关于大规模并行的。它与普通的单线程编程完全不同。 除非您只想将这些函数同时应用于大型阵列的各个元素,否则将其编码到GPU中没有任何好处。 事实上,GPU核心时钟比处理器慢得多。 如果您将以单线程风格将主要针对CPU编写的函数编译到GPU,您将得到潜在的性能损失。
你需要重新思考你的问题到GPU模式中。

总之,没有一种自动的方法可以做到这一点。但是正如你自己指出的,用设备来装饰你所需要的功能是微不足道的,那么问题是什么呢?好的。。。我想我可以写一个来实现这一点……如果有许多现有的类和函数,那么最好修改它们并创建一个GPU特定的解决方案,而不是让所有的东西都
\uuu设备\uuuu
。我认为这是
nvcc
的一个愚蠢的限制。我知道编译成目标代码的函数需要知道它们的目标代码。但内联函数或按需编译(实例化时)的函数,如成员函数或模板函数,应自动
\uuuuu设备
和/或
\uuuuu主机,如果调用时也是这样,也可以(类似于SFINAE)编译。我认为目前的情况是疯狂的,我不能等待,直到一些nvcc包装或nvcc或叮当自动这样做。总之,没有一个自动的方式来做到这一点。但是正如你自己指出的,用设备来装饰你所需要的功能是微不足道的,那么问题是什么呢?好的。。。我想我可以写一个来实现这一点……如果有许多现有的类和函数,那么最好修改它们并创建一个GPU特定的解决方案,而不是让所有的东西都
\uuu设备\uuuu
。我认为这是
nvcc
的一个愚蠢的限制。我知道编译成目标代码的函数需要知道它们的目标代码。但内联函数或按需编译(实例化时)的函数,如成员函数或模板函数,应自动
\uuuuu设备
和/或
\uuuuu主机,如果调用时也是这样,也可以(类似于SFINAE)编译。我认为目前的情况是疯狂的,我不能等到某个nvcc包装器或nvcc或clang自动完成。你通常可能是对的。但事实上,这是关于meachine学习,我使用最小-最大模块来并行数据,这样它就可以在不改变算法的情况下并行训练,而且我有办法集成结果。它应该在多CPU而不是GPU中运行。但出于某种原因,我别无选择。你可能大体上是对的。但事实上,这是关于机器学习,我使用最小-最大模块来并行数据,这样它就可以在不改变算法的情况下并行训练,而且我有办法整合结果。它应该在多CPU而不是GPU中运行。但由于某种原因,我别无选择。。