Skip to content

MohamadKhaledCharaf/CLUE-SYCL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CLUE-SYCL

CLUE-SYCL is a SYCL-based implementation of the CLUE clustering algorithm, designed to run efficiently on heterogeneous hardware including FPGAs using Intel's oneAPI toolchain.

βš™οΈ Requirements

  • Intel oneAPI DPC++/C++ Compiler (icpx)
  • SYCL-compatible hardware or emulator (e.g. FPGA emulator)
  • C++17 or later
  • CMake (optional if you prefer build automation)

πŸ“ Directory Structure

.
β”œβ”€β”€ main.cpp
β”œβ”€β”€ clueLib/
β”‚   └── include/
β”‚       └── ...
β”œβ”€β”€ data/
β”‚   └── input/
β”‚       └── aniso_1000.csv

▢️ How to Run on FPGA Emulator

To compile and run CLUE-SYCL using the FPGA emulator:

1. Compile

icpx -fsycl main.cpp -I clueLib/include/ -o cluestering

2. Run

./cluestering -i data/input/aniso_1000.csv -d 7.0 -r 10.0 -o 2 -e 10 -v

πŸ” Flags Explanation

Flag Description
-i Path to input CSV file
-d dc β€” Distance cutoff for density calculation
-r rhoc β€” Density threshold to qualify as a seed
-o Outlier delta factor
-e Number of repeated session(s)
-v Verbose mode

πŸ’‘ Notes

  • This setup targets the FPGA emulator, which simulates FPGA behavior for testing and development.
  • You can set the target device using the SYCL device selector inside main.cpp, or via environment variables like:
    SYCL_DEVICE_FILTER=host ./cluestering

For targeting an actual FPGA card, further configuration and FPGA bitstream compilation would be required.


πŸ“« Contact

For questions or contributions, please open an issue or submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages