原作者:huashiyiqike 原文地址:http://www.cnblogs.com/huashiyiqike/p/3886670.html

Y=alpha * X +beta*Y

template <>
void caffe_cpu_axpby<float>(const int N, const float alpha, const float* X,const float beta, float* Y) {cblas_saxpby(N, alpha, X, 1, beta, Y, 1);
}template <>
void caffe_cpu_axpby<double>(const int N, const double alpha, const double* X,const double beta, double* Y) {cblas_daxpby(N, alpha, X, 1, beta, Y, 1);
}

 

cblas_dscal(N, beta, Y, incY);  Y=Y*beta 
cblas_daxpy(N, alpha, X, incX, Y, incY);  Y= (alpha * X) + Y)

Y=alpha * X + Y

template <>
void caffe_axpy<float>(const int N, const float alpha, const float* X,float* Y) { cblas_saxpy(N, alpha, X, 1, Y, 1); }template <>
void caffe_axpy<double>(const int N, const double alpha, const double* X,double* Y) { cblas_daxpy(N, alpha, X, 1, Y, 1); }

DEFINE_VSL_BINARY_FUNC(Add, y[i] = a[i] + b[i]);
DEFINE_VSL_BINARY_FUNC(Sub, y[i] = a[i] - b[i]);
DEFINE_VSL_BINARY_FUNC(Mul, y[i] = a[i] * b[i]);
DEFINE_VSL_BINARY_FUNC(Div, y[i] = a[i] / b[i]);template <>
void caffe_add<float>(const int n, const float* a, const float* b,
float* y) {
vsAdd(n, a, b, y);
}template <>
void caffe_add<double>(const int n, const double* a, const double* b,
double* y) {
vdAdd(n, a, b, y);
}

y=x;

template <>
void caffe_copy<float>(const int N, const float* X, float* Y) {cblas_scopy(N, X, 1, Y, 1);
}template <>
void caffe_copy<double>(const int N, const double* X, double* Y) {cblas_dcopy(N, X, 1, Y, 1);
}template <>
void caffe_gpu_copy<float>(const int N, const float* X, float* Y) {CUBLAS_CHECK(cublasScopy(Caffe::cublas_handle(), N, X, 1, Y, 1));
}template <>
void caffe_gpu_copy<double>(const int N, const double* X, double* Y) {CUBLAS_CHECK(cublasDcopy(Caffe::cublas_handle(), N, X, 1, Y, 1));
}

Computes alpha*x*y' + A.

cblas_sger
Multiplies vector X by the transform of vector Y, then adds matrix A (single precison).

Multiplies vector X by the transform of vector Y, then adds matrix A (single precison).
void cblas_sger (
const enum CBLAS_ORDER Order,
const int M,
const int N,
const float alpha,
const float *X,
const int incX,
const float *Y,
const int incY,
float *A,
const int lda
);

Y(vetor)←αAX + βY

This function multiplies A * X (after transposing A, if needed) and multiplies the resulting matrix by alpha.
It then multiplies vector Y by beta. It stores the sum of these two products in vector Y.

template <>
void caffe_cpu_gemv<float>(const CBLAS_TRANSPOSE TransA, const int M,const int N, const float alpha, const float* A, const float* x,const float beta, float* y) {cblas_sgemv(CblasRowMajor, TransA, M, N, alpha, A, N, x, 1, beta, y, 1);
}

C(matrix)←αAB + βC

template<typename T>
void gpu_multmat(T* A, T* B, T* C, int M,int K,int N){const T alpha = 1,beta=0;caffe_gpu_gemm(CblasNoTrans,CblasNoTrans,M,N,K,alpha,A,B,beta,C);
}

template<>
void caffe_cpu_gemm<float>(const CBLAS_TRANSPOSE TransA,const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K,const float alpha, const float* A, const float* B, const float beta,float* C) {int lda = (TransA == CblasNoTrans) ? K : M;int ldb = (TransB == CblasNoTrans) ? N : K;cblas_sgemm(CblasRowMajor, TransA, TransB, M, N, K, alpha, A, lda, B,ldb, beta, C, N);
}

A=M*N  B=M*KC=A'*B   N M K
template<typename T>
void cpu_multTmat(T* A, T* B, T* C, int M,int K,int N){const T alpha = 1,beta=0;caffe_cpu_gemm(CblasTrans,CblasNoTrans,M,N,K,alpha,A,B,beta,C);// cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, M, N, K, alpha, A, M, B,    K, beta, C, M);
}
A=M*N B=N*K
C=A*B   M N K
template<typename T>
void cpu_multmat(T* A, T* B, T* C, int M,int K,int N){const T alpha = 1,beta=0;caffe_cpu_gemm(CblasNoTrans,CblasNoTrans,M,N,K,alpha,A,B,beta,C);// cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, M, N, K, alpha, A, M, B,    K, beta, C, M);
}

转载于:https://www.cnblogs.com/gkwang/p/4365559.html

【转】常用 blas 函数相关推荐

  1. jQuery中常用的函数方法总结

    jQuery中为我们提供了很多有用的方法和属性,自己总结的一些常用的函数,方法.个人认为在www.21kaiyun.com的紫微斗数星座在线排盘开发中会比较常用的,仅供大家学习和参考. 事件处理 re ...

  2. R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析

    R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录

  3. R语言常用sys函数汇总:sys.chmod、Sys.Date、Sys.time、Sys.getenv、Sys.getlocale、sys.getpid、sys.glob、sys.info等

    R语言常用sys函数汇总:sys.chmod.Sys.Date.Sys.time.Sys.getenv.Sys.getlocale.sys.getpid.sys.glob.sys.info等 目录

  4. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  5. excel中最常用的30个函数_最常用日期函数汇总excel函数大全收藏篇

    在我们的实际工作中,经常需要用到日期函数.日期函数那么多,你还只会用函数TODAY吗?那你就OUT了.今天一起来看下常用日期函数的用法! 1.DATE 函数DATE:返回在日期时间代码中代表日期的数字 ...

  6. MapInfo中常用查询函数及用法

    MapInfo中常用查询函数及用法: 函数用途 语法 备注 图层中选点 Str$(obj)="point": Str(String)表示字符串:point表示点: 图层中选线 St ...

  7. loadrunner写脚本常用C函数

    loadrunner写脚本常用C函数 strcat的串连两个字串. strchr返回指向第一次出现的字符串中的字符. STRCMP比较两个字符串来确定的字母顺序. STRCPY一个字符串复制到另一个地 ...

  8. linux c数字转字符串函数,Linux常用C函数—字符串转换篇

    Linux 常用C 函数-字符串转换篇 atof (将字符串转换成浮点型数) 相关函数 atoi ,atol ,strtod ,strtol ,strtoul 定义函数 double atof(con ...

  9. SQL常用字符串函数

    SQL常用字符串函数 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用''括起来,但含其它字符的字符串必须用''括起来使用 ...

  10. SQL Server几个常用Date函数(二)

    在上一节SQL Server几个常用Date函数(一)中我们介绍了下表中前两个date函数,本节继续学习下面三个函数. 函数 描述 GETDATE() 返回当前日期和时间 CONVERT() 用不同的 ...

最新文章

  1. 在线作图|小基因组——线粒体基因组圈图
  2. 【转】C++面试题(四)——智能指针的原理和实现
  3. Grunt安装中遇到的问题汇总
  4. 基于python物流管理系统毕业设计-长白高校邦数据科学通识课【Python基础语法】答案...
  5. 基于spring cloud 的灰度发布实践_【收藏】基于spring cloud灰度发版方案
  6. [轉]数据挖掘工具的选择
  7. 贾跃亭的惩罚来了!就这??
  8. 计算机控制系统功能,计算机控制系统功能之操作指导-电脑自学网
  9. linux命令安装tongweb教程,【中间件】TongWeb安装
  10. 数字图像处理-直方图均衡化,直方图规定化
  11. 重置IE浏览器的设置
  12. MeasureSpec
  13. 压力测试-LR工具安装
  14. 企业财务数据分析指标
  15. 计算机二级题百度云,计算机二级office题库
  16. oracle SQL以结尾函数,Oracle SQL 内置函数大全
  17. 拉丁超立方——样本点空间转换
  18. 危骆邦油邦快讯|一分钟看懂山东地炼成品油报价
  19. 关于某normal大学数据库登录的一个尝试
  20. oracle 按照固定顺序排序

热门文章

  1. Centos彻底完全删除已安装软件的办法
  2. Oracle 字符集
  3. 雪碧+滑动门,自适应宽度菜单
  4. 启动、停止和重新启动vcenter服务
  5. Ubuntu Linux 环境变量PATH设置
  6. Java实现文件批量重命名
  7. C++STL算法速查
  8. ASP.NET MVC 学习笔记(1)
  9. 用python重温统计学基础:描述性统计分析
  10. 精选|2019年1月R新包推荐