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.