在未来的某一天,当你突然想知道这个世界上有多少人跟你长的相似的时候,你可以在搜索框中上传搜索一张自己的照片,剩下的一切都可以交给智能化的图片搜索引擎来完成,它能根据图片的内容特征自动识别相似的图片。这种“以图搜图”的情景说起来容易,但实现起来,却是一个困扰了谷歌、百度等各大搜索引擎巨头们许久的技术难题。
要知道,计算机本身并不能识别图像或文字,唯有将其转化为数字,计算机才能识别和处理。传统的图像检索技术是以文本检索技术为核心构建的,互联网上的图片被人为的打上各种各样的标签,如一张海上日出的风景照片,可能的标签包括“海洋、日出、风景”等等,一旦有用户在搜索框中输入这些关键词后,搜索引擎会在数据库中自动查找相对应的标签。
然而,随着技术的进步,以人工智能为核心的内容图像检索技术已经成为未来发展的趋势。目前,谷歌通过提供数百万份 YouTube 视频,成功的让虚拟神经网络系统--DistBelief在事先没有获取“猫的特征描述”信息的情况下,自行总结出猫这个概念的特征。也就是说,DistBelief具有自学习能力。而在这套人工智能系统后面,是一个由 1000 台机器组成、包括 16000 个内核、处理参数高达 10亿个的超级计算机系统。
让机器像人一样理解图像内容,强大的硬件固然必不可少,可最核心的依然是智能算法的设计,目前基于聚类的方法是图像搜索领域的关键方法之一,其中k-means算法是应用最广泛的无监督聚类方法,海量数据的索引大部分都使用了分层聚类的思想。但是k-means算法效率相对比较低,原来CPU版本的方法在使用50到60个节点的条件下处理约100万张图片,需要耗时5个多小时。这种速度对于动辄上亿数据的互联网公司来说,完全无法接受的,因此必须要对k-means进行优化。
针对k-means目前的特点,浪潮日前与国内某知名搜索公司实现合作,成功实现了对k-means算法的优化。在项目过程中,浪潮高性能计算并行团队在分析代码后,提出GPU集群的解决方案,并提出了从硬件(计算节点、网络互联、存储节点)到软件(优化软件)的一揽子解决方案。特别在软件方面,浪潮与客户算法专家团队共同成立专门联合项目组,基于K-means串行版本,完成GPU MPI集群版本的实现,节点内使用CPU+GPU协同计算,大幅降低了计算时间。
双方联合针对GPU架构进行了算法层面的优化,重写了计算部分代码,将整体速度大幅提升。经过优化后的软件,在单GPU上运行的速度与串行程序相比,加速比达到41倍,1块GPU相当于4.4个8核CPU并行的性能,同时由于浪潮 GPU版本K-means具有很好的性能可扩展性,这使得GPU服务器具有很好的性价比非常适合于此类应用大规模部署。
某搜索引擎技术部的负责人在上线了浪潮优化后的搜索程序表示:“浪潮优化以后,大幅降低了我们硬件采购的成本,并且节省了计算时间,为我们的应用上线带来了很大助益。”
浪潮作为中国异构高性能计算技术的领先者,一直致力于推动GPU和MIC的应用发展和人才培养,推动异构技术的产业生态环境建设。据了解,浪潮已经分别与英特尔和英伟达联合成立并行计算实验室,合作开发优化基于MIC和GPU的并行应用,涉及石油天然气、数值气象预报、生命科学、计算流体力学、金融风险分析、电磁仿真、CAE、机器学习等诸多领域。同时,浪潮高性能计算应用软件开发团队是目前同时掌握CPU、GPU、MIC应用技术的国际领先团队,在CPU、GPU、MIC技术方面已取得多项研究成果,并成功在SC和IDF大会上成功展示。