How mayankbajaj21/cuda-lof-cybersecurity works
This research project prepares CICIDS2017 network-flow data and applies Local Outlier Factor for anomaly scoring, with a CPU reference and a CUDA-acceleration track. The main workflow runs from raw CSV inspection and preprocessing through loading processed features, LOF computation, and benchmark/result visualization. CUDA covers distance, neighbor search, reachability density, and LOF scoring; the README identifies profiling and optimization as project goals but describes later CUDA milestones as placeholders. Some runner and native-pipeline wiring is documented but its source was not sampled, so uncertain links are omitted.
Main entry points: cuda_lof_pipeline.cu CUDA LOF Pipeline · results Benchmark Results · inspect_dataset.py Inspect CSVs · prepare_dataset.py Clean and Prepare
Components 19
Dataset Preparation
- Inspect CSVs
preprocessing/inspect_dataset.py - Clean and Prepare
preprocessing/prepare_dataset.py - Raw CSVs
data/raw - Processed Data
data/processed - Dataset Loader
src/python/data/dataset.py
LOF Detection
- CPU LOF
src/python/cpu/cpu_lof.py
CUDA Acceleration
- CUDA LOF API
src/python/cuda/lof.py - CUDA LOF Pipeline
src/cuda/lof/cuda_lof_pipeline.cu - Pairwise Distance
src/cuda/kernels/distance_kernel.cu - k-NN Search
src/cuda/kernels/knn_kernel.cu - Reachability Distance
src/cuda/kernels/reachability_kernel.cu - Local Reachability Density
src/cuda/kernels/lrd_kernel.cu - LOF Scoring
src/cuda/kernels/lof_kernel.cu
Evaluation
- Benchmark Results
results - Result Visualizations
src/python/visualization - GPU Profiling
experiments/m4_profiling - CUDA Optimization
experiments/m5_cuda_optimized
Other components
- Researcher
- CICIDS2017
Connections 23
- CICIDS2017 → Raw CSVs: provides data
- Researcher → Inspect CSVs: runs inspection
- Inspect CSVs → Raw CSVs: reads CSVs
- Inspect CSVs → Benchmark Results: writes report
- Researcher → Clean and Prepare: runs preparation
- Clean and Prepare → Raw CSVs: reads CSVs
- Clean and Prepare → Processed Data: writes features
- Researcher → Dataset Loader: requests data
- Dataset Loader → Processed Data: loads arrays
- Researcher → CPU LOF: runs baseline
- Researcher → CUDA LOF API: runs CUDA
- CUDA LOF API → CUDA LOF Pipeline: invokes pipeline
- CUDA LOF Pipeline → Pairwise Distance: dispatches
- CUDA LOF Pipeline → k-NN Search: dispatches
- CUDA LOF Pipeline → Reachability Distance: dispatches
- CUDA LOF Pipeline → Local Reachability Density: dispatches
- CUDA LOF Pipeline → LOF Scoring: dispatches
- CPU LOF → Benchmark Results: records results
- CUDA LOF API → Benchmark Results: records timings
- Benchmark Results → Result Visualizations: provides results
- Result Visualizations → Benchmark Results: writes tables and charts
- CUDA LOF Pipeline → GPU Profiling: profiled in
- CUDA LOF Pipeline → CUDA Optimization: optimized in