众所周知,ATLAS使用矩阵计算算法的“阻塞”或“平铺”版本,这大大提高了性能。
ATLAS似乎还有一些architectural defaults,它们是手动计算的。并且可以进行搜索以确定NB
的其他值(我相信一个#define
宏代表块数。)
但它是如何运作的?价值如何确定?这些算法只运行了多次不同的值,蒙特卡罗风格,直到找到某种最佳值?
这也是一个假设。假设您将阻塞的ATLAS算法复制到C ++模板中,并且具有128位有理类型。你能从某种方式从算法的双重版本的ATLAS调优NB
值得到NB
算法的合理版本吗?