Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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++ 在(C+;+;-AMP)中处理异构向量_C++_C++11_C++ Amp - Fatal编程技术网

C++ 在(C+;+;-AMP)中处理异构向量

C++ 在(C+;+;-AMP)中处理异构向量,c++,c++11,c++-amp,C++,C++11,C++ Amp,我已经编写了一些代码,可以读取和解析数量可变的.dat文件,并将它们存储到2D向量中,每个文件都是单独的向量。现在,我正试图利用并行处理(GPU)来对这些向量执行一些计算。然而,许多询问对我来说仍然模棱两可,如果你能向我澄清,我将不胜感激 声明时是否必须定义范围s维度?因为我有基于文件的可变维度数。或者我可以声明extent,而不声明像concurrency::extent eA这样的维度如果不是,那么备选方案是什么 当我声明数组时;我可以使用T作为泛型类型(例如使用boost::any),因为

我已经编写了一些代码,可以读取和解析数量可变的.dat文件,并将它们存储到2D向量中,每个文件都是单独的向量。现在,我正试图利用并行处理(GPU)来对这些向量执行一些计算。然而,许多询问对我来说仍然模棱两可,如果你能向我澄清,我将不胜感激

  • 声明时是否必须定义
    范围
    s维度?因为我有基于文件的可变维度数。或者我可以声明
    extent
    ,而不声明像
    concurrency::extent eA这样的维度如果不是,那么备选方案是什么
    
  • 当我声明数组时
  • ;我可以使用
    T
    作为泛型类型(例如使用
    boost::any
    ),因为我的向量是异构的(一些数字和一些文本)
  • 1) 否无法在运行时设置数据块的维度。它是一个模板参数,必须在编译时设置。您只能在运行时设置每个维度的大小

    另一种方法是声明一维数组,然后在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