当前位置: 首页 > news >正文

渭南网站建设wordpress 归档页显示文章缩略图

渭南网站建设,wordpress 归档页显示文章缩略图,智能网站平台,网络网站制作过程openblas提供的sgemm有两种方式#xff0c;一种是通过cblas#xff0c;另一种是直接声明并调用 sgemm_ 其中#xff0c;cblas方式是更正规调用方法#xff1b; 1#xff0c;调用openblas的 sgemm 的两种方式 1.1 c语言程序中使用 sgemm hello_sgemm.c #include st… openblas提供的sgemm有两种方式一种是通过cblas另一种是直接声明并调用 sgemm_ 其中cblas方式是更正规调用方法 1调用openblas的 sgemm 的两种方式 1.1 c语言程序中使用 sgemm hello_sgemm.c #include stdlib.h #include stdio.h//#define CBLAS_USE 1 #ifdef CBLAS_USE #include cblas.h #else //extern C{void sgemm_( char * const transpa, char * const transpb, int *m, int *n,int *k, float *alpha, float *a, int *lda, float *b, int *ldb,float *beta, float *c, int *ldc ); //} #endifvoid init_matrix(int M, int N, float* A, int lda, int seed) {srand(seed);for(int i0; iM; i){for(int j0; jN; j){A[i j*lda] (float)rand()/RAND_MAX;}} }void print_matrix(int M, int N, float* A, int lda) {for(int i0; iM; i){for(int j0; jN; j){printf( %7.4f , A[i j*lda]);}printf(\n);} }int main() {int M 3;int N 3;int K 3;float* A NULL;float* B NULL;float* C NULL;int lda M;int ldb K;int ldc M;A (float*)malloc(lda*K* sizeof(float));B (float*)malloc(ldb*N* sizeof(float));C (float*)malloc(ldc*N* sizeof(float));init_matrix(M, K, A, lda, 2023); printf(\nA \n); print_matrix(M, K, A, lda);init_matrix(K, N, B, ldb, 2024); printf(\nB \n); print_matrix(K, N, B, ldb);init_matrix(M, N, C, ldc, 2025); printf(\nC \n); print_matrix(M, N, C, ldc);float alpha 1.0f;float beta 0.0f; #ifdef CBLAS_USEcblas_sgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, M, N, K, 1.0, A, lda, B, ldb, 0.0, C, ldc);printf(C alpha*A*B beta*C cblas_sgemm()\n); print_matrix(M, N, C, ldc); #elsesgemm_(N, N, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc);printf(C alpha*A*B beta*C sgemm_()\n); print_matrix(M, N, C, ldc); #endifreturn 0; }运行效果 $ gcc -DCBLAS_USE hello_sgemm.c -L ../tdd/third-party/openblas/local/lib/ -lopenblas -o hello_sgemm_c $ gcc hello_sgemm.c -L ../tdd/third-party/openblas/local/lib/ -lopenblas -o hello_sgemm_c 可见调用 sgemm_() 与调用 cblas_sgemm() 的结果相同 需要注意sgemm_()函数的声明方式参数全部都是指针 void sgemm_( char * const transpa,  char * const transpb, int *m, int *n,                   int *k, float *alpha, float *a, int *lda, float *b, int *ldb,                       float *beta, float *c, int *ldc ); 1.2 cpp 语言程序中调用 sgemm 相较于 c 语言中cpp 程序中增加了 extern C{ 修饰 否则编译无法通过由于c的特性。 hello_sgemm.cpp #if CBLAS_USE #include cblas.h #else extern C{void sgemm_( char * const transpa, char * const transpb, int *m, int *n,int *k, float *alpha, float *a, int *lda, float *b, int *ldb,float *beta, float *c, int *ldc ); } #endif 2. cpp 中的sgemm_声明为何需要 extern C extern C 的作用 在 C 源代码文件中使用 extern C 的作用是告诉编译器按照 C 语言的方式对函数进行链接而不是 C 的方式。这在与其他语言或库进行交互时非常有用特别是在 C 代码中调用 C 语言编写的函数时。 当您使用 extern C 修饰一个函数声明时编译器会按照 C 语言的命名约定来生成函数符号这样可以确保 C 代码和 C 代码之间的函数调用能够正确链接。在 C 中函数名可能会经过名称修饰name mangling以支持函数重载和其他特性比如在函数末尾加上参数类型缩写而 C 语言没有这种面向对象的语法概念和需求。 如下图可见 print_matrix函数的名字在 cpp中被加了前缀和后缀而 c语言文件中函数名字依然为 print_matrix
http://www.dnsts.com.cn/news/53711.html

相关文章:

  • 家居定制类网站建设ui设计的基本流程
  • 山西科技网站建设黄冈app下载推广平台官网
  • 重庆网站营销网易企业邮箱服务器怎么设置
  • 优化方案电子版百度seo外包
  • 淘宝推广平台有哪些seo推广优化
  • 万网网站模板下载长沙做彩票网站公司
  • 怎样在设计网站做图赚钱福州seo建站
  • 济南网站建设_美叶网络优秀的公司网站
  • 网站建设亇金手指专业网站建设优化服务渠道
  • 是用cms还是直接用语言写网站网站开发软件有哪
  • 行唐网站建设权威发布公众号封面图片
  • 可以做招商的网站网站建设论文500字
  • 最新站群网络舆情分析案例
  • wordpress网站怎么进入后台门户网站如何制作
  • 玉田住房和建设局网站jsp网站开发难吗
  • 手机网站制作费用多少wordpress图片放大滑动
  • 全国做网站哪家好二次开发教程
  • 免费个人主页网站国内外知名市场调研公司
  • 服务器做jsp网站教程视频seo快速排名软件首页
  • 工作总结教师南宁seo收费
  • 网站模板系统编程网站排名
  • 怎么才能访问自己做的网站企业网站的常见服务
  • 网站换空间wordpresshtml页面转WordPress文章
  • 什么网站做英语翻译练习深圳西乡建网站
  • 看设计比较好的网站音乐网站的建设
  • 手机网站主页面文艺海外 酒店 网站建设
  • 视觉设计包括哪些内容seo竞价
  • 网站开发系统源代码江西南昌网站建设服务
  • 我的世界怎么做赞助网站wordpress适合外贸的主题
  • 重庆网站建设哪里有wordpress图片变大