Поделиться через


Класс array

Представляет контейнер данных, используемый для перемещения данных к ускорителю.

template <
   typename _Value_type,
   int _Rank
>
friend class array;

Параметры

  • _Value_type
    Тип данных элемента.

  • _Rank
    Ранг массива.

Члены

Открытые конструкторы

Name

Описание

Конструктор array::array

Инициализирует новый экземпляр класса array.

Деструктор array::~array

Уничтожает объект array.

Открытые методы

Name

Описание

Метод array::copy_to

Копирует содержимое массива в другой массив.

Метод array::data

Возвращает указатель на необработанные данные массива.

Метод array::get_accelerator_view

Возвращает объект accelerator_view, представляющий расположение, в котором размещен массив. Доступ к этому свойству можно получить только на ЦП.

Метод array::get_associated_accelerator_view

Получает второй объект accelerator_view, передаваемый в качестве параметра при вызове промежуточного конструктора для создания экземпляра объекта array.

Метод array::get_cpu_access_type

Возвращает access_type массива. Доступ к этому методу можно получить только на ЦП.

Метод array::get_extent

Возвращает объект extent массива.

Метод array::reinterpret_as

Возвращает одномерный массив, содержащий все элементы в объекте array.

Метод array::section

Возвращает подраздел объекта array, находящийся по заданному начальному положению и, при необходимости, имеющий определенный размер.

Метод array::view_as

Возвращает объект array_view, который создан из объекта array.

Открытые операторы

Name

Описание

Оператор array::operator std::vector<_Value_type>

Использует copy(*this, vector) для неявного преобразования массива в объект std::vector.

Оператор array::operator()

Возвращает значение элемента, заданного параметрами.

Оператор array::operator[]

Возвращает элемент, находящийся по указанному индексу.

Оператор array::operator=

Копирует содержимое указанного объекта array в данный объект.

Открытые константы

Name

Описание

Константа array::rank

Хранит размерность массива.

Открытые члены данных

Name

Описание

Элемент данных array::accelerator_view

Получает объект accelerator_view, представляющий расположение, в котором выделен массив. Доступ к этому свойству можно получить только на ЦП.

Элемент данных array::associated_accelerator_view

Получает второй объект accelerator_view, передаваемый в качестве параметра при вызове промежуточного конструктора для создания экземпляра объекта array.

Элемент данных array::cpu_access_type

Получает объект access_type, представляющий способ доступа ЦП к хранилищу массива.

Элемент данных array::extent

Получает область памяти, которая определяет форму массива.

Примечания

Тип array<T,N> представляет плотный и обычный (равномерный) N-мерный массив, расположенный в определенном месте, например, в ускорителе или ЦП. Тип данных элементов в массиве — T, который должен быть типом, совместимым с целевым ускорителем. Хотя размерность массива, N, определяется статически и является частью типа, область памяти массива определяется средой выполнения и выражается с помощью класса extent<N>.

Массив может иметь любое количество измерений, хотя некоторые функциональные возможности специализированы для объектов array размерности 1, 2 и 3. Если опустить аргумент измерения, то значение по умолчанию — 1.

Данные массива располагаются в памяти непрерывно. Элементы, которые отличаются на единицу в наименее значимом измерении, смежны в памяти.

Считается, что массивы являются типами значений, поскольку при копировании одного массива в другой выполняется полное копирование. Два массива никогда не указывают на одни и те же данные.

Тип array<T,N> используется в некоторых сценариях:

  • Как контейнер данных, который можно использовать в вычислениях на ускорителе.

  • Как контейнер данных для хранения памяти на узловом ЦП (который может быть использован для копирования в и из других массивов).

  • В качестве промежуточного объекта, который будет действовать как быстрый посредник в копировании от узла к устройству.

Иерархия наследования

array

Требования

Заголовок: amp.h

Пространство имен: Concurrency

См. также

Ссылки

Пространство имен Concurrency (C++ AMP)