featured
github.com/Githarold ↗
Grand Prize · Minister of Science & ICT Award · KRW 40M
Grand Prize at the 1st AI Semiconductor Competition (Minister of Science & ICT Award). Collaborated with Furiosa AI in a 2-member team and achieved up to 533% NPU utilization improvement over baseline while simultaneously increasing quantization accuracy. Established an MLOps pipeline with W&B and MLflow for systematic experiment tracking and model management.
PyTorchQuantization
Furiosa NPUComputer Vision
Benchmarking
- Problem
- The SDK's default runner was synchronous with a batch size of 1. Only 3% of the 16 GB memory was in use, and NPU compute utilization sat at 24.9%.
- Approach
- ONNX export with BN folding and graph simplification, INT8 post-training quantization, uint8 inputs. Profiling showed NMS taking 14.25% of inference time; moving it to
torchvision.opscut that to 1.37%. The synchronous runner was replaced with a batched async queue, and dataloader settings were grid-searched. - My part
- MLOps and proof-of-concept work in a two-person team: W&B and MLflow tracking for 1,000+ reproducible experiments, a shared experiment script, and early validation of the optimization ideas.
- Result
- Up to +533% NPU utilization on YOLOv8s and +252% on YOLOv8s-pose over the baseline. 1st of 244 teams.