thunlp / Fast-TransX

An Efficient implementation of TransE and its extended models for Knowledge Representation Learning
MIT License
402 stars 108 forks source link

加速结果是否有问题? #27

Closed zdh2292390 closed 6 years ago

zdh2292390 commented 6 years ago

image 如图所示,8个线程的速度 比 单线程的速度快了100倍。 请问这还符合物理规律吗?

THUCSTHanxu13 commented 6 years ago

TransE是之前开源的KB2E的运行结果,100倍里面有很大一部分是底层内存管理和数据处理修改之后的加速,我们之前测算过十倍以上的提速是修改底层带来的,这里面包括:内存通过开页表实现连续,训练的时候考虑数据顺序符合缓存访问,去除不必要容器,合并冗余运算,以及换采样算法。这个加速不是和单线程的fast-transE进行对比,而是之前的开源包对比 = =!

zdh2292390 commented 6 years ago

谢谢!佩服佩服,原来如此!顺便想请问有没有关于你的底层优化的文档或是论文可供学习一下?

THUCSTHanxu13 commented 6 years ago

感觉这个挺玄学的,相同时间复杂度的算法出来的耗时可能很不一样,我能想到的讲底层优化的只有很久之前竞赛的时候看的一个《论程序底层优化的方法和技巧》,一个国家集训队高中生写的,其他暂时没想到