首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在(C++-AMP)中处理异构向量

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

Stack Overflow用户
提问于 2013-06-20 02:10:46
回答 1查看 192关注 0票数 2

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

  1. 声明时是否必须定义extent的维度?因为我有基于文件的可变维数。或者我可以声明extent而不声明像concurrency::extent<2> eA;这样的维度--如果不是,还有什么可供选择的呢?
  2. 当我声明array<T,N>时,我是否可以使用T作为泛型类型(例如使用boost::any),因为我的向量是异构的(一些数字和一些文本)?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-04 07:47:14

1)不可能在运行时设置范围的维度。它是一个模板参数,必须在编译时设置。您只能在运行时设置每个维度的大小。

另一种方法是声明一个一维数组,然后在C++中使用索引偏移量数学手动解压各种维度。

( 2)否。C++ AMP仅限于GPU能够处理的子集类型。您不能使用boost::any。

与C++ AMP兼容的函数或lambda只能使用与C++ AMP兼容的类型,其中包括:

代码语言:javascript
复制
- int
- unsigned int
- float
- double
- C-style arrays of int, unsigned int, float, or double
- concurrency::array_view or references to concurrency::array

没有进一步描述你的问题,很难提供更多的建议。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17204239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档