C++ AMP programozási nyelv

Típusok, típuskonstrukciók

A nyelv újításait a könnyű tanulhatóság miatt nem új kulcsszavakba, hanem új osztályokba igyekeztek bevezetni.

array

array<T, N>: T típusú N hosszú tömb létrehozása, amely másolásra kerül az adatpárhuzamos eszköz memóriájába, majd onnan vissza

std::vector<int> v(5);
std::iota(v.begin(), v.end(), 0);
array<int,1> a(5,v.begin(),v.end());
parallel_for_each(a.extent, [&](index<1> idx)
restrict(amp)
{
a[idx] = a[idx] * 2;
});
copy(a,v);

array_view



std::vector<int> v(5);
std::iota(v.begin(), v.end(), 0);
array_view<int,1> av(5,v);
parallel_for_each(av.extent, [=](index<1> idx)
restrict(amp)
{
av[idx] = av[idx] * 2;
});
av.synchronize();

extend

extend

Egy array/array_view struktúráját (dimenzióját) adhatjuk meg a segítségével.

index

index

Egy array/array_view egy elemének index-e. Dimenziója megegyezik az array/array_view dimenziójával.