Векторний тип даних

Векторний тип даних — багатовимірний тип даних котрий створюється на основі стандартних типів даних. На даний час використовується лише при GPGPU програмування. Багато сучасних відеоадаптерів та центральних процесорів мають вбудовану підтримку векторних типів даних.

Опис[ред. | ред. код]

Векторний тип даних описується як ім'я базового типу плюс кількість вимірів, наприклад float4. Даний запис означає, що буде виділена пам'ять під чотири змінні типу float, котрі у оперативній пам'яті будуть розташовані підряд. Над векторними типами можна проводити базові математичні операції типу +,-,*,/ також можна проводити операцію присвоєння. Доступ до певного компоненту типу векторна змінна можна отримати через символ «.» після чого вказується ім'я компоненту.

Використання[ред. | ред. код]

OpenCL[ред. | ред. код]

У OpenCL векторні типи даних можуть будуватися на основі наступних базових типів даних: [u]char, [u]short, [u]int, [u]long, float, double, half [1]. Стандарт визначає наступну кількість вимірів для векторного типу: 2, 4, 8 та 16. У таблиці нижче наведені імена компонентів з вказаними порядком [2].

Ім'я\N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
floatN v v.x, v.s0 v.y, v.s1 v.z, v.s2 v.w, v.s3 v.s4 v.s5 v.s6 v.s7 v.s8 v.s9 v.sa, v.sA v.sb, v.sB v.sc, v.sC v.sd, v.sD v.se, v.sE v.sf, v.sF

Імена v.x, v.y, v.z, v.w, можуть використовуватися лише у векторах розмірністю 2 та 4.

CUDA[ред. | ред. код]

У CUDA векторні типи даних розмірності 2, 3 та 4 можуть будуватися на основі наступних базових типів даних: [u]char, [u]short, [u]int, [u]long, float, а також розмірністю 2 на основі типів: [u]longlong, double[3].

Посилання[ред. | ред. код]

  1. OpenCL Vector Data Types. OpenCL documentation. Khronos Group. Архів оригіналу за 6 липня 2014. Процитовано 4 травня 2014.
  2. OpenCL Vector Dimension (PDF). OpenCL quick reference card. Khronos Group. Архів оригіналу (PDF) за 7 лютого 2014. Процитовано 4 травня 2014.
  3. CUDA Vector Data Types. Архів оригіналу за 4 травня 2014. Процитовано 4 травня 2014.

Див. також[ред. | ред. код]