w***g 发帖数: 5958 | 1 最近本三层循环的矩阵乘法自然差不多,java做运行时编译,说不定还好点。你弄个AT
LAS的矩阵乘法再来比比看?(懒的话就用matlab算你那个矩阵乘法, matlab用的就是AT
LAS。)C的好处在于architecture dependent,可以做优化。C++的好处在于可以兼容C
。这种优化跟java的思想是背道而驰的。 |
t****t 发帖数: 6806 | 2 有人提了LAPACK啊. 当然乘法用不到LAPACK这么高, 确实BLAS就够了.
AT
AT
容C
【在 w***g 的大作中提到】 : 最近本三层循环的矩阵乘法自然差不多,java做运行时编译,说不定还好点。你弄个AT : LAS的矩阵乘法再来比比看?(懒的话就用matlab算你那个矩阵乘法, matlab用的就是AT : LAS。)C的好处在于architecture dependent,可以做优化。C++的好处在于可以兼容C : 。这种优化跟java的思想是背道而驰的。
|
c*******h 发帖数: 1096 | 3 blas能做最多优化的是level3的,像矩阵乘向量那种level2的能优化的地方
不是很多,所以优势不会特别明显。尤其是很多优化针对的是硬件,例如说
cpu的架构,缓存的大小,所以不同机器测出来很不一样。
现在有人研发java的blas库,就好像nvidia也搞自己的cublas库一样。看吧,
随着软硬件的发展,谁比谁好还真的很难一锤定音。程序员很少去关心现成
的库的实现,而恰恰是现成的库的效率给了程序员关于语言的效率的印象。
有时候底层的库写好了,以及做了针对性的优化的话,整一门语言给程序员
的感觉就很不一样了。
AT
AT
容C
【在 w***g 的大作中提到】 : 最近本三层循环的矩阵乘法自然差不多,java做运行时编译,说不定还好点。你弄个AT : LAS的矩阵乘法再来比比看?(懒的话就用matlab算你那个矩阵乘法, matlab用的就是AT : LAS。)C的好处在于architecture dependent,可以做优化。C++的好处在于可以兼容C : 。这种优化跟java的思想是背道而驰的。
|
d****n 发帖数: 1637 | 4 SSE优化与否大不同吧。
jvm 都非常aggressive 的优化了。还有好多inline.
比较自己写的code 当然要十八班兵器全用上了。
否则没有可比性。 |
w***g 发帖数: 5958 | 5 优化的是cache.
【在 d****n 的大作中提到】 : SSE优化与否大不同吧。 : jvm 都非常aggressive 的优化了。还有好多inline. : 比较自己写的code 当然要十八班兵器全用上了。 : 否则没有可比性。
|
d****n 发帖数: 1637 | 6 It is all about cache.
【在 w***g 的大作中提到】 : 优化的是cache.
|
t****t 发帖数: 6806 | 7 SSE其实没有那么神, 毕竟是线性的优化
和BLAS这种算法的优化还是没法比的
【在 d****n 的大作中提到】 : SSE优化与否大不同吧。 : jvm 都非常aggressive 的优化了。还有好多inline. : 比较自己写的code 当然要十八班兵器全用上了。 : 否则没有可比性。
|
t****t 发帖数: 6806 | 8 到底是all about cache还是all about sse?
【在 d****n 的大作中提到】 : It is all about cache.
|
n*****3 发帖数: 1584 | 9 I think it depends on the size of data and your MEM
【在 t****t 的大作中提到】 : 到底是all about cache还是all about sse?
|
t****t 发帖数: 6806 | 10 我知道是这样的, 我主要是觉得dryden一会儿一个说法
【在 n*****3 的大作中提到】 : I think it depends on the size of data and your MEM
|
a****l 发帖数: 8211 | 11 of course cache. SSE is useless if the cache is not handled properly in the
first place.
【在 t****t 的大作中提到】 : 到底是all about cache还是all about sse?
|