高并发的神经网络推理框架部署
highport 是一款封装神经网络推理的高并发的软件架构,已在ESWEEK 2023年皮肤病检测比赛中获得第一名。
这里记录一下highport的软件架构和几个trick优化
软件架构图
解密模块:我们训练完的模型文件是带加密的,为了防止被其他个人盗用,加密方式采用密码与权重文件的二进制内容进行异或计算,解密出来的文件进行md5校验,如果与预测的md5校验就说明解密正确。
创建文件索引模块:把要进行推理的图片路径与文件名存入table,用数字进行索引,极大缩短读取文件的索引时间。
并发处理模块:若只有一个cpu核且执行任务过程无阻塞,那么线程的并发处理任务的效率会低于单线程处理任务效率,因为多线程需要开销任务栈、调度和锁。由于所需的硬件平台是4核cpu,所以只开创4个线程并发,这样的效率最高。
图片处理模块:加载四个模型的推理效率比加载一个模型在四个cpu并发锁保护效率高。