{"id":18414811,"url":"https://github.com/navdeep-g/dimreduce4gpu","last_synced_at":"2025-04-14T17:34:08.250Z","repository":{"id":40984632,"uuid":"105698890","full_name":"navdeep-G/dimreduce4gpu","owner":"navdeep-G","description":"Dimensionality reduction (\"dimreduce\") on GPUs (\"4gpu\")","archived":false,"fork":false,"pushed_at":"2024-10-31T14:49:55.000Z","size":121,"stargazers_count":2,"open_issues_count":9,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-06T03:54:59.685Z","etag":null,"topics":["cplusplus","cuda","dimensionality-reduction","gpu","linear-algebra","pca","python","svd","unsupervised-learning"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/navdeep-G.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-03T20:20:11.000Z","updated_at":"2024-10-31T14:49:59.000Z","dependencies_parsed_at":"2022-09-01T11:10:26.795Z","dependency_job_id":null,"html_url":"https://github.com/navdeep-G/dimreduce4gpu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navdeep-G%2Fdimreduce4gpu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navdeep-G%2Fdimreduce4gpu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navdeep-G%2Fdimreduce4gpu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navdeep-G%2Fdimreduce4gpu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/navdeep-G","download_url":"https://codeload.github.com/navdeep-G/dimreduce4gpu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231123221,"owners_count":18331199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","cuda","dimensionality-reduction","gpu","linear-algebra","pca","python","svd","unsupervised-learning"],"created_at":"2024-11-06T03:52:25.443Z","updated_at":"2024-12-24T16:21:14.235Z","avatar_url":"https://github.com/navdeep-G.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dimreduce4gpu\n\n`dimreduce4gpu` is a dimensionality reduction library optimized for GPUs, enabling fast and efficient data reduction through CUDA. This library includes popular algorithms, such as Principal Component Analysis (PCA) and Truncated Singular Value Decomposition (SVD), specifically adapted to leverage GPU acceleration, making it suitable for high-performance applications in data science and machine learning.\n\n## Current Algorithms\n\n- **Principal Component Analysis (PCA)**: A technique that reduces data dimensionality by transforming variables into a set of uncorrelated principal components.\n- **Truncated SVD**: An approximation of SVD that focuses on the most significant singular values, useful for sparse and large-scale datasets.\n\n## Building `dimreduce4gpu`\n\n### Build Environment Requirements\n\nTo successfully build and run `dimreduce4gpu`, ensure your environment meets the following requirements:\n\n- **CUDA Version**: Compatible up to CUDA 9.0\n- **Operating System**: Linux\n- **Compiler**: GCC 4.9+ with CMake\n- **Python Version**: Python 3.6\n\n#### Setup for Ubuntu 16.04 with `virtualenv`\n\n1. **Install Python and required packages**:\n    ```bash\n    apt-get -y --no-install-recommends install \\\n        python3.6 \\\n        python3.6-dev \\\n        virtualenv \\\n        python3-pip\n    virtualenv --python=python3.6 .venv\n    pip install setuptools --no-cache-dir\n    . .venv/bin/activate\n    ```\n\n2. **Configure environment variables**:\n    Add the following lines to `.bashrc` or your environment configuration file to set up CUDA paths:\n    ```bash\n    export CUDA_HOME=/usr/local/cuda\n    export PATH=$CUDA_HOME/bin:$PATH\n    export LD_LIBRARY_PATH_MORE=/home/$USER/lib/:$CUDA_HOME/lib64/:$CUDA_HOME/lib/:$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LD_LIBRARY_PATH_MORE\n    export CUDADIR=/usr/local/cuda/include/\n    ```\n\n3. **Compile the project and install the Python interface**:\n    ```bash\n    git clone --recursive git@github.com:navdeep-G/dimreduce4gpu.git\n    cd dimreduce4gpu\n    virtualenv -p python3.6 env\n    make\n    ```\n\n## Usage of `dimreduce4gpu` in Other Projects\n\nThe `dimreduce4gpu` library is integrated into other open-source projects for GPU-accelerated data science solutions. For example:\n\n- **[H2O4GPU](https://github.com/h2oai/h2o4gpu/tree/master)**: A GPU-optimized library of solvers by [H2O.ai](https://www.h2o.ai/) which includes implementations of dimensionality reduction methods:\n  - **Truncated SVD**: [H2O4GPU SVD Implementation](https://github.com/h2oai/h2o4gpu/tree/master/src/gpu/tsvd)\n  - **Principal Component Analysis**: [H2O4GPU PCA Implementation](https://github.com/h2oai/h2o4gpu/tree/master/src/gpu/pca)\n\n---\n\nFor additional information or to contribute, feel free to submit an issue or a pull request on GitHub. Thank you for your interest in `dimreduce4gpu`!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavdeep-g%2Fdimreduce4gpu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavdeep-g%2Fdimreduce4gpu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavdeep-g%2Fdimreduce4gpu/lists"}