title: Do CUDA cores have vector instructions?
body: <p>According to most NVidia documentation CUDA cores are scalar processors and should only execute scalar operations, that will get vectorized to 32-component SIMT warps.</p>
  
  <p>But OpenCL has vector types like for example <code>uchar8</code>.It has the same size as <code>ulong</code> (64 bit), which can be processed by a single scalar core. If I do operations on a <code>uchar8</code> vector (for example component-wise addition), will this also map to an instruction on a single core?</p>
  
  <p>If there are 1024 work items in a block (work group), and each work items processes a <code>uchar8</code>, will this effectively process 8120 <code>uchar</code> in parallel?</p>
  
  <p><strong>Edit:</strong>
  My question was if on CUDA architectures specifically (independently of OpenCL), there are some vector instructions available in "scalar" cores. Because if the core is already capable of handling a 32-bit type, it would be reasonable if it can also handle addition of a 32-bit <code>uchar4</code> for example, especially since vector operations are often used in computer graphics.</p>