Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/artecs-group/k-means
Multi-device K-Means based on the He-Vialle implementation.
https://github.com/artecs-group/k-means
Last synced: 2 months ago
JSON representation
Multi-device K-Means based on the He-Vialle implementation.
- Host: GitHub
- URL: https://github.com/artecs-group/k-means
- Owner: artecs-group
- License: mit
- Created: 2023-05-12T06:08:46.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-05-12T06:26:41.000Z (over 1 year ago)
- Last Synced: 2024-08-02T15:09:58.867Z (5 months ago)
- Language: C++
- Size: 18.2 MB
- Stars: 0
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-oneapi - Performance and Portability Evaluation of the K-Means Algorithm on SYCL with CPU-GPU architectures - This work uses the k-means algorithm to asses the performance portability of one of the most advanced implementations of the literature He-Vialle over different programming models (DPC++ CUDA OpenMP) and multi-vendor CPU-GPU architectures. (Table of Contents / AI - Machine Learning)
README
# K-Means
This repository contains a k-means implementation for CUDA and SYCL.
## Requirements
You have to intall the following dependencies:* [CUDA Toolkit 11.7](https://developer.nvidia.com/cuda-11-7-0-download-archive)
* [oneAPI 2022.3](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html)
* [Intel Clang/LLVM](https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedGuide.md) -> In order to run SYCL over Nvidia GPUs.
* [hipSYCL](https://github.com/OpenSYCL/OpenSYCL) -> Optional.## Project Structure
The repository is ordered in this folders:* [He_Vialle_impl](/He_Vialle_impl/): Has the original implementation, you can found it [here](https://gitlab-research.centralesupelec.fr/Stephane.Vialle/cpu-gpu-kmeans).
* [custom_impl](/custom_impl/): Has the CUDA and SYCL custom implementations based on the original one.
* [etc](/etc/): Has the scripts to automatically get the application times.
* [data](/data/): You have there all the data requiered to reproduce the experiments.## Publications
* Youssef Faqir-Rhazoui and Carlos García (2023). "Exploring the Performance and Portability of the k-means Algorithm on SYCL Across CPU and GPU Architectures". The Journal of Supercomputing.
* [Free available here](https://doi.org/10.21203/rs.3.rs-2402689/v1).## Acknowledgements
This work has been supported by the EU (FEDER), the Spanish MINECO and CM under grants S2018/TCS-4423, PID2021-126576NB-I00 funded by MCIN/AEI/10.13039/501100011033 and by "ERDF A way of making Europe".