Multithreading t-SNE

t-SNE is commonly used in fields data visualization for exploring data and understanding its underlying structure. It is a dimensionality reduction technique used to visualize high-dimensional data in a lower-dimensional space, typically 2D or 3D. I write a GPU-version of it with cuda which is 204 times faster than scikit-learn version.
