3 KiB
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