我在Windows 8上使用C++ AMP与Visual Studio 2012.我有一个案例,我有2D array_view,experimentData
和1D array_view,experimentFactors
。我想遍历2D array_view的第一维和1D array_view的1维。这就是我所拥有的,但我经常得到错误,表示这里没有重载。我想要迭代第一维的numberOfTests
。我想要行:C++ AMP遍历不同尺寸的array_views
auto test = experimentData[idx];
返回整行数据。我认为array_view
上的section
方法是做到这一点的方法,但我无法弄清楚。
array_view<int_2, 2> experimentData(numberOfTests, numberOfSolutions, initialConditionSet);
array_view<float_2, 1> experimentFactors(numberOfTests, factorData);
extent<1> e_size(numberOfTests);
parallel_for_each(e_size, [=] (index<1> idx) restrict(amp) {
auto test = experimentData.section(idx);
auto factors = experimentFactors[idx];
analysisAlgorithm(test, factors);
});
的test
对象应该是experimentData
array_view
一个1×N个部分。 factors
对象应该是来自experimentFactors
array_view
的单个项目。
澄清
的experimentData
的array_view具有M行和N列
的experimentFactors
的array_view具有M行
每个的大小是多少?它是MxN和M,还是MxN和M * N? – Borgleader
experimentData是MxN,experimentFactors是M –
为什么从矩阵中提取整行?为什么不反过来呢? – Borgleader