我想计算矩阵
其中每个是一个给定的长度向量, 以便是, 和我的大约是200万。与其调用 DSYR 200 万次,我发现我可以通过存储在块矩阵中,然后在块矩阵已满时调用 DSYRK。我定义一个矩阵作为:
以便
我设置行的原因等于向量而不是列是因为我使用 C,这样行的 incX 将为 1,我认为这有助于加快 BLAS 操作。
我发现这个过程仍然比我想要的慢,我的问题是如何选择(即行数) 以获得最佳性能?
目前,我正在选择,我只选择了这样的总大小存储矩阵为 1GB ()。有没有更好的选择(的行数) 以获得最佳性能?
万一这很重要,我将在具有 24 个内核的机器上使用 ATLAS CBLAS 库。