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

Векторний тип даних — багатовимірний тип даних котрий створюється на основі стандартних типів даних. На даний час використовується лише при 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. 
  2. OpenCL Vector Dimension. OpenCL quick reference card. Khronos Group. 
  3. CUDA Vector Data Types. 

Див. такожРедагувати