VLIW on NVidia Cuda
#1
Brick 
Hello! 


Firstly, I want to express my gratitude for open the source code of the program. It was done a great job.

Now I am trying to understand how it is works. And now I am stuck, can you explain me about this code in NVidia Cuda version:
Code:
#ifdef IS_NV
#ifdef sm_10
#define VLIW1
....................
#elif sm_21
#define VLIW2...

And
Code:
class u32x
{
 private:
 public:

 u32 x;
 u32 y;
 u32 z;
 u32 w;
....................
}
And other.

This looks like a Intel SIMD instructions, or VLIW, but I cant find any information about it on NVidia Cuda.

I would be very grateful if you could point me to answer! Thank you!
#2
VLIW code for NVidia is only required for cheap sm_21 models. Basically Ti series cards < 9xx series, like the 560Ti. It is required to get out maximum performance for those cards. With newer cards you don't need this.

Basically this C++ classes just create code which generates code using the same instructions multiple times in a row but for different data sets. As you said, it's like SIMD.

Note that CUDA is getting replaced with OpenCL with oclHashcat v2.10.