# Face KNN OpenCL - Note di compilazione ## Repository Directory sorgente: /home/nvme/dockerdata/prove/face-clustering-rk3588-knn-opencl-validated Questo repository contiene i sorgenti del motore KNN utilizzato dai progetti s1xxjs/s190js. Il binario distribuito è: bin/face_knn SHA256 del binario originale: e74bd672eebaa0f10028e25c0f7051e981cd16c2eeb9c529f513a6c412c11033 --- ## File principali ### Motore KNN src/face_knn.cc Gestisce: - parsing input - caricamento embeddings - scelta CPU/OpenCL - output risultati ### Backend OpenCL src/knn_opencl.cc Implementazione KNN GPU. ### Integrazione Mali G610 src/knn_opencl_backend.cc Gestisce: - ricerca device OpenCL - compilazione kernel - allocazione buffer - esecuzione GPU ### Kernel GPU kernels/knn_float4_topk.cl Kernel OpenCL eseguito sulla Mali G610. --- ## Verifica binario Verifica hash: sha256sum bin/face_knn Hash atteso: e74bd672eebaa0f10028e25c0f7051e981cd16c2eeb9c529f513a6c412c11033 --- ## Librerie richieste Il binario utilizza: - libOpenCL.so.1 - libstdc++.so.6 - libgcc_s.so.1 - libc.so.6 - libm.so.6 Verifica: ldd bin/face_knn --- ## Simboli principali Verifica presenza delle funzioni: nm -C bin/face_knn | grep search_opencl nm -C bin/face_knn | grep search_cpu Devono comparire: face_knn::search_opencl() face_knn::search_opencl_impl() face_knn::search_cpu() --- ## Compilazione (da verificare) La build originale non è presente nel Makefile attuale. Comando ricostruito: g++ \ -std=c++17 \ -O2 \ -Wall \ -Wextra \ -Wpedantic \ -Iinclude \ src/face_knn.cc \ src/knn_opencl.cc \ src/knn_opencl_backend.cc \ -lOpenCL \ -ldl \ -lpthread \ -o bin/face_knn NOTA: Prima di utilizzarlo verificare eventuali dipendenze mancanti. --- ## Evidenze raccolte Il binario contiene riferimenti diretti a: - face_knn.cc - knn_opencl.cc - knn_opencl_backend.cc Verifica: strings bin/face_knn | grep -i "face_knn.cc\\|knn_opencl" Il binario esporta: - face_knn::search_opencl() - face_knn::search_opencl_impl() - face_knn::search_cpu() Verifica: nm -C bin/face_knn | grep search_ --- ## Utilizzo nei progetti NodeJS Il binario è utilizzato da: native/face-knn/bin/face_knn richiamato tramite: tools/faceKnnRuntime.js nei progetti s141js → s190js. ## Provenienza verificata Il binario utilizzato nei progetti s141js → s190js: native/face-knn/bin/face_knn ha SHA256: e74bd672eebaa0f10028e25c0f7051e981cd16c2eeb9c529f513a6c412c11033 Lo stesso hash è stato trovato nei repository: - face-recognition-rk3588-opencl - face-clustering-rk3588-knn-opencl - face-clustering-rk3588-knn-opencl-validated Verifiche effettuate: - strings bin/face_knn - nm -C bin/face_knn - ldd bin/face_knn - sha256sum bin/face_knn Risultato: Il binario deriva dai sorgenti: - src/face_knn.cc - src/knn_opencl.cc - src/knn_opencl_backend.cc e utilizza il kernel: - kernels/knn_float4_topk.cl Target GPU: - ARM Mali-G610 (RK3588 / Orange Pi 5 Plus) Data documentazione: 2026-10-26