I am confused, what's the difference between SIMD and SSE, SSE2, SSE3, AVX etc?
According to my knowledge and research, SIMD is architecture which allows for a Single Instruction to operate on multiple data and SSE, AVX are instruction sets which implement a SIMD architecture.
And also is there a difference between vector sizes of each architecture like SSE has 128 bits and AVX has 256 bits? If the underlying SIMD architecture is the same (I think), then how do different ISAs have different vector sizes?
I'm not sure if this is true, can someone explain to me in detail what actually happens?