C++ 在(C+;+;-AMP)中处理异构向量
我已经编写了一些代码,可以读取和解析数量可变的.dat文件,并将它们存储到2D向量中,每个文件都是单独的向量。现在,我正试图利用并行处理(GPU)来对这些向量执行一些计算。然而,许多询问对我来说仍然模棱两可,如果你能向我澄清,我将不胜感激C++ 在(C+;+;-AMP)中处理异构向量,c++,c++11,c++-amp,C++,C++11,C++ Amp,我已经编写了一些代码,可以读取和解析数量可变的.dat文件,并将它们存储到2D向量中,每个文件都是单独的向量。现在,我正试图利用并行处理(GPU)来对这些向量执行一些计算。然而,许多询问对我来说仍然模棱两可,如果你能向我澄清,我将不胜感激 声明时是否必须定义范围s维度?因为我有基于文件的可变维度数。或者我可以声明extent,而不声明像concurrency::extent eA这样的维度如果不是,那么备选方案是什么 当我声明数组时;我可以使用T作为泛型类型(例如使用boost::any),因为
范围
s维度?因为我有基于文件的可变维度数。或者我可以声明extent
,而不声明像concurrency::extent eA这样的维度代码>如果不是,那么备选方案是什么李>
当我声明数组时
;我可以使用T
作为泛型类型(例如使用boost::any
),因为我的向量是异构的(一些数字和一些文本)另一种方法是声明一维数组,然后在C++ +lambda中使用索引偏移数学手工解开各个维度。 < C++ AMP)仅限于GPU可以处理的类型的子集。您不能使用boost::any
一个C++ +AMP兼容函数或lambda只能使用C++ AMP兼容类型,包括以下类型:
如果不进一步描述你的问题,就很难提供更多的建议- int
- unsigned int
- float
- double
- C-style arrays of int, unsigned int, float, or double
- concurrency::array_view or references to concurrency::array