OpenBLAS 介绍

OpenBLAS是由中科院软件所并行软件与计算科学实验室发起的基于GotoBLAS2 1.13 BSD版的开源BLAS库高性能实现.

OpenBLAS源码地址

OpenBLAS地址:https://github.com/xianyi/OpenBLAS/tree/release-0.2.21

build OpenBLAS for iPhone

1.下载源码,下载之后如下图所示:

WX20171024-104921@2x.png

2.找到c_check文件,在这段代码的后面

$cross_suffix = "";if (dirname($compiler_name) ne ".") {$cross_suffix .= dirname($compiler_name) . "/";}if (basename($compiler_name) =~ /([^\s]*-)(.*)/) {$cross_suffix .= $1;}

添加如下代码:

 $cross_suffix = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/";

3.新建一个openBlasBuild.sh文件,写入如下代码:

TOOLCHAIN_PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
SYSROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk
make TARGET=ARMV8 BINARY=64 HOSTCC=clang CC="$TOOLCHAIN_PATH/clang -isysroot $SYSROOT_PATH -arch arm64 -miphoneos-version-min=8.0 -O2" NOFORTRAN=1 libs

参数说明TOOLCHAIN_PATH xcode安装目录,SYSROOT_PATH iOS SDK目录,make编译,TARGET目标架构(可以是ARMV8,x86_64等),-arch arm64可以是arm64、armv7、arm7s。
4.把openBlasBuild.sh执行文件放到刚刚下载的OpenBLAS源码根目录下,如下图所示:

WX20171024-112904@2x.png

赋予openBlasBuild.sh文件可执行权限:

chmod a+x openBlasBuild.sh

然后运行:

./openBlasBuild.sh

等待编译完成,在OpenBLAS源码根目录下就生成了libopenblas_armv8p-r0.2.20.a文件。

如何使用

刚刚生成的是一个libopenblas_armv8p-r0.2.20.a静态库,需要的头文件如下图所示:(在OpenBLAS源码目录下都可以找得到这些头文件)

WX20171024-114218@2x.png

把这个文件夹加入到iOS工程引头文件就可以使用了,注意需要把用到的那个类的后缀名改为.mm,这样xcode才可以编译通过,因为这个库是c++写的。

编译支持模拟器x86_64

需要支持模拟器的把步骤3的代码改为:

TOOLCHAIN_PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
SYSROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
make TARGET=x86_64 BINARY=64 HOSTCC=clang CC="$TOOLCHAIN_PATH/clang -isysroot $SYSROOT_PATH -arch x86_64 -miphoneos-version-min=8.0 -O2" NOFORTRAN=1 libs

新下载一份OpenBLAS源码,按照234步骤编译。通过lipo -create -output命令把两个.a合在一块就可以同时支持模拟器与真机了(iPhone5s以上机型与模拟器)。
两个.a文件合并完成了,还需要合并用到的头文件中的config.h文件,每次生成.a文件都会生成对应的config.h文件。config.h里面是定义的宏,我们用#if !TARGET_IPHONE_SIMULATOR预编译宏区别是真机还是模拟器。把两个config.h文件的内容合并为一个如下图所示:

WX20171024-120503@2x.png

WX20171024-120701@2x.png

制作好的openBlas库git地址:https://github.com/PingshengZhao/openBlasForiOS

How to build OpenBLAS for iPhone iOS相关推荐

  1. 【转】iphone - ios app maximum memory budget

    [转]iphone - ios app maximum memory budget https://stackoverflow.com/questions/5887248/ios-app-maximu ...

  2. iPhone/iOS开启个人热点的纵向适配小结

    http://blog.csdn.net/phunxm/article/details/42967035 一.iPhone创建个人热点 iPhone/iOS双环上网,即iPhone通过创建个人热点(P ...

  3. iphone ios编译ffmpeg

    1.mov格式解析 http://blog.csdn.net/sunshine1314/article/details/2547275 2.mov解析的开源工程:bento4和ffmpeg,其中ben ...

  4. iphone ios 横屏,旋转 无响应

    以下大家友情支持一下: 做了一个产品,需要人气支持一下,android和iphone上91市场搜索#super junior粉丝团#,或者直接到页面下载http://m.ixingji.com/m.h ...

  5. iPhone iOS升级完美指南

    之前买的iPhone 4,用的是iOS 4.1.现在最新的系统是iOS5.x了.(iOS5新功能请看:iPhone升级iOS 5可用iMessage免费发短信) 很多东西无法在旧的系统中使用,所以想升 ...

  6. 招聘:IT-互联网相关职位。如:手机客户端、iphone\ios\、PHP 开发工程师,产品经理...

    招聘:IT-互联网相关职位---JD     工作地点:北京   有意请发e-mail:happy.liu2010@hotmail.com   Q:970446462   职位1:手机客户端研发工程师 ...

  7. 为什么我的iPhone iOS 15少了一些新功能

    旧款iPhone可能兼容iOS 15,但它不会给你所有新的功能 一直等待的iOS 15已经来到.到目前为止,你可能已经在iPhone上升级,并探索了新的Safari 浏览器和 FaceTime 通话功 ...

  8. 如何提取ipa中的图片; iphone ios 如何制作越狱ipa安装文件

    ipa实际上就是一个zip包,将ipa解压即可看到里面有很多png资源文件,但这些文件是经过xcode编译优化过的,所以无法直接查看. 可以使用下面的命令来还原指定的图片 $ /Developer/P ...

  9. iphone ios 如何制作越狱ipa安装文件

    正常情况下发布测试版给用户需要问到对方设备ID并添加到开发者证书里去感觉有点麻烦,如果是已越狱过的机器可以使用xcode制作ipa文件,并直接用itunes同步进去,这样方便多了. 将运行目标选为iO ...

最新文章

  1. 用seaborn 画出唯美的论文专用图片,自己定制python画图的数据集
  2. kvm 网络配置之nat、用户模式
  3. UNIX再学习 -- 用户 ID 和组 ID
  4. HDR-100-24N LRS-100-24 漏电测量
  5. 二值化_处理连续型特征:二值化与分段
  6. JS原生 实现图片懒加载
  7. hello world_建立无服务器的“ Hello World”功能
  8. JBuilder安装JDBC drive的方法略解
  9. (后端)解决code唯一码(java)简便方法
  10. 做了一个阿里云MQTT单片机编程小工具
  11. [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效
  12. 浅入深出Vue:数据渲染
  13. python编程之处理GB级的大型文件
  14. Java缓存技术-google guava cache
  15. 微软hci推荐服务器,Azure Stack HCI 的系统需求
  16. 考研数学一二三 2010-2019年每道题的难度系数
  17. 2021年江西省研究生数学建模竞赛题目(一)题目:某肿瘤疾病诊疗的经济学分析
  18. 人工神经网络有哪些算法,神经网络都有哪些算法
  19. 三校生计算机教学计划,第十二
  20. Win7如何部署定制的Quicklaunch图标

热门文章

  1. python Django框架之URL与视图(3)
  2. python代码,在字符串的多个指定位置插入符号
  3. linux下的压缩和解压命令
  4. java如何实现redis分片存储_Redis的分片机制
  5. 为生活,选条幸福的路
  6. K8S云平台部署过程说明
  7. 初识面向对象二(继承/抽象/C3)
  8. 获取输入汉字的中文读音
  9. 牛逼顿 [转此怀念牛顿]
  10. linux重启shutdown命令,linux中shutdown命令关机与重启