项目标题
最近修订日期
2021-09-09 14:42:46
主要
计算机科学-系统
学位名称
理学学士
预计毕业日期
2017年春季
摘要
贝叶斯网络可以用来分析和发现基因图谱之间的关系。不幸的是,贝叶斯网络学习是一个NP-hard算法,因此需要大量的时间来生成输出。在这一领域已经有研究试图使这个算法更快,比如利用共识网络。共识网络是许多“更便宜”的贝叶斯网络的聚合,用于制定更大的图景。这些“廉价”网络的搜索空间受到限制,因此需要更多的空间来提取数据点之间的关系。
为了实现这一点,我使用C和MATLAB编程的参考库,在c++中实现了贝叶斯网络学习。网络学习的实现和结构是这样一种方式,CUDA可以用来加速矩阵运算,因为数据集通常足够大,可以保证这样的措施(GPGPU加速)。
然而,经过大量的测试,人们发现CUDA加速对贝叶斯网络学习并不能显著提高性能。在某些情况下,使用CUDA卡是有害的。这主要是由于所有执行的矩阵操作都是线性性质的(O(n)),并且没有执行矩阵乘法(O(n ^3)操作)。将内存复制到GPU和从GPU复制内存所产生的成本远远超过使用GPU而不是CPU所获得的速度。
不幸的是,引入矩阵加速并不能将学习过程加快一个数量级,但这种实现在未来仍然可以被重用,用于高度依赖矩阵乘法的应用程序。我从这次研究经历中学到了很多,并将能够将所学到的知识应用到我未来的工作中。
研究发起人
蒂姆·奥尼尔博士
第一个读者
迈克尔·l·科拉德博士
第二个读者
段忠辉博士
建议引用
Haddad, Joseph,“CUDA加速贝叶斯网络学习的实现”(2017)。威廉姆斯荣誉学院,荣誉研究项目.499.
https://ideaexchange.www.jamsic.com/honors_research_projects/499