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

做飞机票的图片的网站淮安百度推广公司

做飞机票的图片的网站,淮安百度推广公司,网站移动端优化的重点有哪些,成都建设网站公司为了提高某些低级向量生成的代码的执行速度,并 矩阵运算(如矩阵乘法)在独立代码中,指定您 要MATLAB Coder™生成 BLAS 调用。BLAS 是一个用于低级向量和矩阵计算的软件库,它具有 几个高度优化的机器特定实现。代码生成…

为了提高某些低级向量生成的代码的执行速度,并 矩阵运算(如矩阵乘法)在独立代码中,指定您 要MATLAB Coder™®生成 BLAS 调用。BLAS 是一个用于低级向量和矩阵计算的软件库,它具有 几个高度优化的机器特定实现。代码生成器使用 CBLAS C 接口来 哎呀。如果指定要生成 BLAS 调用,并且 矩阵函数满足特定条件,代码生成器生成 BLAS 调用。 否则,代码生成器将为矩阵函数生成代码。

对于独立代码中的 BLAS 调用,MATLAB Coder 使用您指定的 BLAS 库。指定针对您的执行环境进行优化的 BLAS 库。

指定 BLAS 库

若要在独立代码中生成 BLAS 调用,必须有权访问 BLAS Callback 类。BLAS 回调类指定 BLAS 库、CBLAS 头文件、 特定 CBLAS 接口使用的某些 C 数据类型,以及编译器和 生成过程的链接器选项。执行下列操作之一:

在命令行中,将代码配置对象属性设置为回调的名称 类。CustomBLASCallback

在 MATLAB 中 Coder app,将 Custom BLAS library callback 设置为回调类的名称。

编写 BLAS 回调类

若要在生成的代码中生成对特定 BLAS 库的调用,请编写 BLAS 回调类。与希望在独立代码中使用此 BLAS 库进行 BLAS 调用的其他人共享回调类。

回调类必须派生自抽象类编码器。BLASCallback的。此示例是回调类的实现,用于与 Windows 平台上的英特尔 MKL BLAS 库集成。mklcallback®

classdef mklcallback < coder.BLASCallbackmethods (Static)function updateBuildInfo(buildInfo, ~)libPath = fullfile(pwd,'mkl','WIN','lib','intel64');libPriority = '';libPreCompiled = true;libLinkOnly = true;libs = {'mkl_intel_ilp64.lib' 'mkl_intel_thread.lib' 'mkl_core.lib'};buildInfo.addLinkObjects(libs, libPath, libPriority, libPreCompiled, ...libLinkOnly);buildInfo.addLinkObjects('libiomp5md.lib',fullfile(matlabroot,'bin', ...'win64'), libPriority, libPreCompiled, libLinkOnly);buildInfo.addIncludePaths(fullfile(pwd,'mkl','WIN','include'));buildInfo.addDefines('-DMKL_ILP64');endfunction headerName = getHeaderFilename()headerName = 'mkl_cblas.h';endfunction intTypeName = getBLASIntTypeName()intTypeName = 'MKL_INT';endend
end

必须提供 、 和 方法。该方法返回 CBLAS 头文件 名字。如果您使用的是其他 BLAS 库,请替换为 CBLAS 头文件的名称。该方法返回 CBLAS 接口使用的整数数据类型的名称。如果你 正在使用不同的 BLAS 库,请替换为 特定于 CBLAS 接口的整数数据类型。该方法提供了 构建过程以链接到 BLAS 库。使用类似于示例中的代码的代码 callback 类指定头文件的位置,BLAS 的完整路径名 库,以及编译器和链接器选项。如果您使用英特尔 MKL BLAS 库,请使用 Link Line Advisor,用于查看哪些库和编译器选项 推荐用于您的用例。getHeaderFilenamegetBLASIntTypeNameupdateBuildInfogetHeaderFilenamemkl_cblas.hgetBLASIntTypeNameMKL_INTupdateBuildInfo

中已经实现了其他三种方法。这些方法是 、 和 。默认情况下,您的回调类 继承了这些实现。在某些 情况下,在定义时,必须使用自己的定义覆盖这些方法 你的回调类。coder.BLASCallbackgetBLASDoubleComplexTypeNamegetBLASSingleComplexTypeNameuseEnumNameRatherThanTypedefcoder.BLASCallback

该方法返回用于 生成代码中的双精度复变量。如果您的 BLAS 库采用 除 和 for 以外的类型 双精度复数组参数,将此方法包含在回调类中 定义。getBLASDoubleComplexTypeNamedoublevoid

function doubleComplexTypeName = getBLASDoubleComplexTypeName()
doubleComplexTypeName = 'my_double_complex_type';
end

替换为 BLAS 库采用的类型 用于双精度复数组参数。my_double_complex_type

该方法返回用于 生成代码中的单精度复变量。如果您的 BLAS 库采用 除 和 for 以外的类型 单精度复数组参数,将此方法包含在回调类中 定义。getBLASSingleComplexTypeNamefloatvoid

function singleComplexTypeName = getBLASSingleComplexTypeName()
doubleComplexTypeName = 'my_single_complex_type';
end

替换为 BLAS 库采用的类型 用于单精度复数组参数。my_single_complex_type

该方法返回 违约。如果 BLAS 库中的枚举类型包含关键字,请重新定义此方法以在回调类定义中返回。useEnumNameRatherThanTypedeffalseenumtrue

function p = useEnumNameRatherThanTypedef()
p = true;
end

包含关键字的生成 C 源代码的摘录如下:enum

enum CBLAS_SIDE t;
enum CBLAS_UPLO b_t;
double temp;
enum CBLAS_TRANSPOSE c_t;
enum CBLAS_DIAG d_t;

通过指定 BLAS 回调类生成 BLAS 调用

此示例演示如何生成在特定 BLAS 库中调用 BLAS 函数的代码。 BLAS 回调类指定 BLAS 库 想要在此示例中使用。useMyBLAS

编写一个 MATLAB 函数,该函数调用函数进行基本矩阵运算。 例如,编写一个乘法函数 两个矩阵和 .myMultiplyAB

function C = myMultiply(A,B) %#codegen
C = A*B;
end

动态定义静态库的代码配置对象 链接库或可执行程序。例如,定义配置 对象,用于 Windows 平台上的动态链接库。

cfg = coder.config('dll');

指定 BLAS 回调类 。useMyBLAS

cfg.CustomBLASCallback = 'useMyBLAS';

回调类必须位于 MATLAB 路径上。

生成代码。指定输入和 是 1000×1000 的双精度数组。AB

codegen myMultiply -args {zeros(1000),zeros(1000)} -config cfg -report

如果 和 足够大,则 代码生成器为矩阵乘法生成 BLAS 调用 功能。AB

在执行环境中找到 BLAS 库

BLAS 库必须在您的执行环境中可用。如果您的 BLAS 库是 shared,则使用环境变量或链接器选项来指定 BLAS 库的位置。

在 Windows 平台上,修改 PATH 环境变量。

在 Linux 平台上,修改 LD_LIBRARY_PATH 环境变量或 使用链接器选项。®rpath

在 macOS 平台上,修改 DYLD_LIBRARY_PATH 环境变量或 使用链接器选项。rpath

若要指定链接器选项,请使用 BLAS 回调类的方法中的 information 方法。为 示例,对于 GCC 编译器:rpathaddLinkFlagsupdateBuildInfo

buildInfo.addLinkFlags(sprintf(‘-Wl,-rpath,“%s”’,libPath));

OpenBLAS 库的使用说明和限制

如果生成的代码包含对 OpenBLAS 库函数的调用,请按照以下步骤操作 这些准则和限制:

如果生成包含对 OpenBLAS 库函数的调用的 C++ 代码, 使用该选项编译它会产生警告。自 禁用编译器选项,将这些行包含在 方法:-pedantic-pedanticupdateBuildInfo

if ctx.getTargetLang() == 'C++'buildInfo.addCompileFlags('-Wno-pedantic');
end

OpenBLAS 不支持 C89/C90 标准。

http://www.yidumall.com/news/71480.html

相关文章:

  • 人工智能写作网站免费宣传平台
  • 网上购物平台口碑排名官网seo是什么意思
  • 网站开发常用的流程北京已感染上千万人
  • 做电子商务的网站百度网址大全在哪里找
  • 网站制作怎么学必应搜索
  • html5手机网站分辩率国外网站搭建
  • wordpress 输出分类网站建设seo优化培训
  • 肯德基网站是哪家公司做的如何写软文赚钱
  • 宜昌做网站优化seo是干什么的
  • 6免费网站建站线下推广100种方式
  • 沌口开发区网页设计网站优化策略分析论文
  • 广告公司做网站的效果怎么样外包接单平台
  • 有哪些网站免费学习建设网站的网络营销费用预算
  • 物流网站建设图片网站关键词优化怎么做的
  • 网站搜索页面怎么做全球搜索引擎
  • 网页网站导读怎么做家庭优化大师下载
  • 做网站seo优化总结怎么样免费做网站
  • 网站建设介绍ppt模板下载seo关键词推广价格
  • 为了 门户网站建设html模板网站
  • 做公司网站思路智推教育seo课程
  • 宁波做网站软件常见的网络营销方法有哪些
  • 做网站商城赔了8万最新域名查询
  • 论坛网站开发文档公司如何在百度宣传
  • 武汉网站建站专业公司武汉楼市最新消息
  • 太平桥网站建设seo平台有哪些
  • 上海做運動网站的公司培训体系搭建
  • 网站开发的资料设备注册网址
  • 网站建设一般报价2023免费b站推广大全
  • 安岳网站建设企业网络营销策略分析案例
  • officeplusseo技术博客