# hls_knn **Repository Path**: opsang/hls_knn ## Basic Information - **Project Name**: hls_knn - **Description**: K-Nearest Neighbor HLS - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-07 - **Last Updated**: 2025-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 基于HLS实现的KNN算法 包含相似性计算模块,以及TOP-K模块 part1 支持50维度, 16bit的数据, topk可支持1~64 对于3900000个向量的语料库,batchsize=1,topk=8,在100MHz下理论计算时间是3.9ms,上板时间是5ms 对于3900000个向量的语料库,batchsize=1,topk=8,在200MHz下理论计算时间是1.95ms,上板时间是3.1ms 此加速器每秒需要读进来的数据是800bit的数据,在200MHz下,所需要的带宽是800/8*200MHz = 20000MB/s = 19.53125GB/s 本人所用的FPGA中的DDR 频率是1200MHz,数据位宽是64bit,因此DDR带宽是1200MHz*2*64/8 = 18.75GB/s part2 支持4-32维度,16bit的数据 对于2M数据,32维,batchsize=4,在100MHz计算时间只需要20ms 对于2M数据,4维,batchsize=1,在100MHz计算时间只需要5ms