gpt4 book ai didi

reference - cblas 接口(interface)有什么好的文档吗?

转载 作者:行者123 更新时间:2023-12-03 23:54:34 24 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




有人可以为 cblas 界面推荐一个好的引用或教程吗? google 上什么都没有,我发现的所有手册页都是 fortran blas 界面的,而 MKL 附带的 pdf 字面意思是花了十秒钟来搜索并且没有帮助。

特别是,我很好奇为什么行与列主要有一个额外的参数;转置标志不能实现相同的操作吗?似乎额外的参数只会增加已经容易出错的界面的复杂性。

最佳答案

本文通过一个简单的示例展示了如何在 C 中使用 cblas(和其他):http://www.seehuhn.de/pages/linear

我在下面引用了相关部分,以防网站出现故障。

使用 BLAS

为了测试 BLAS 例程,我们想要执行一个简单的矩阵向量乘法。阅读文件 blas2-paper.ps.gz 我们发现对应的 Fortran 函数的名称是 DGEMV。 blas2-paper.ps.gz 文本也解释了这个函数的参数的含义。在cblas.ps.gz中我们发现对应的C函数名是cblas_dgemv。以下示例使用此函数计算矩阵向量积

/ 3 1 3 \   / -1 \
| 1 5 9 | * | -1 |.
\ 2 6 5 / \ 1 /

示例文件 testblas.c :
#include <stdio.h>
#include <cblas.h>

double m[] = {
3, 1, 3,
1, 5, 9,
2, 6, 5
};

double x[] = {
-1, -1, 1
};

double y[] = {
0, 0, 0
};

int
main()
{
int i, j;

for (i=0; i<3; ++i) {
for (j=0; j<3; ++j) printf("%5.1f", m[i*3+j]);
putchar('\n');
}

cblas_dgemv(CblasRowMajor, CblasNoTrans, 3, 3, 1.0, m, 3,
x, 1, 0.0, y, 1);

for (i=0; i<3; ++i) printf("%5.1f\n", y[i]);

return 0;
}

要编译这个程序,我们使用以下命令。

cc testblas.c -o testblas -lblas -lm



这个测试程序的输出是

 3.0  1.0  3.0
1.0 5.0 9.0
2.0 6.0 5.0
-1.0
3.0
-3.0


这表明一切正常,我们甚至没有错误地使用转置矩阵。

关于reference - cblas 接口(interface)有什么好的文档吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3903879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com