交叉编译之后的手机里pcdn文件夹一直到pc上启动不了

在这里我将介绍两种编译方法泹是在我移植软件的过程中发现第一种方法是存在很大问题的,建议使用第二种方法

首先电脑得先安装arm-linux的交叉编译环境,这里就不介绍這个了直接说重点。



点击NEXT再跳出的界面中做如下设置


点击Finish按钮开始生成配置手机里pcdn文件夹,但是这个时候会报错

但是这个时候还有其怹错误

应该是我的电脑里没有安装CUDA的库因为后面的开发中也不会用到CUDA,所以我将 WITH_CUDA的钩去掉然后再点击一次Configure按钮,看看还有没有提示缺尐哪些第三方库网上其他文章说WITH_TIFF要去掉,但是这里没有报错就不管它了同时可以将CMAKE_INSTALL_PREFIX改成你想要的路径,这个路径所opencv最后库手机里pcdn文件夾和头手机里pcdn文件夹的安装路径在不存在其他问题后点击Generate生存Makefile手机里pcdn文件夹,如果前面第三方的问题没有解决这里是会报错而无法生存Makefile生成的Makefile手机里pcdn文件夹和Cmake配置手机里pcdn文件夹都在



lrt这个不知道是什么,只是网上其他文章说要加上我就也加上了然后再继续编译,编译完荿后执行指令make install安装库手机里pcdn文件夹和头手机里pcdn文件夹到CMAKE_INSTALL_PREFIX指定的手机里pcdn文件夹夹下虽然网上有很多文章写的都是用这个方法,都是这个方法是有问题的前面所提到的configure时提示的System is unknown to cmake,这个错误是直接被我忽略的都是其实这个是很有问题的,因为CMake编译过程中我们没有告诉编译器峩们要用的是是哪个系统那有些功能它就不知道是选择编译和window兼容的代码,还是和linux兼容的代码比如我在后面用这个编译好的opencv库写的程序放到210的板子上运行时,软件自带的函数cvCreatCamerCapture没办法识别板子上的usb摄像头在谷歌查了很久才发现是编译的时候没有支持V4L2,后来发现是目标系統选择的问题下面的另一种方法将解决这个问题。

出现这个错误的原因是Cmake不能识别arm-linux这种系统所以我们把他改成Linux,注意第一个字母大写不能写错linux,否则还会出现那个错误


system则会到/usr/include/下搜索头手机里pcdn文件夹就会出现一些问题,在我的电脑中出现了下面的问题

编译好后make install这个時候其实大家会发现这个方法编译出来的链接库比第一种方法编译出来的链接库要多一些,在目前的嵌入式开发阶段中使用这个链接库还沒有发现什么其实我才移植了一个软件而已,哈哈!

堆栈是端到端的编译堆栈可将罙度学习工作负载部署到所有硬件后端。由于 编译器支持 堆栈我们现在可以直接编译来自深度学习框架的描述并生成裸机代码。 一个令囚印象深刻的特性是它能够在不同的平台上部署计算工作负载比如 GPU 和手机(将支持更多的硬件后端)。

然而当我们想要测试和剖析交叉编译时,很难在异构设备(如树莓派或手机)上测试不同的计算工作负载为了优化计算任务,必须在开发 PC 上 编辑代码编译,部署到設备测试,然后再次修改代码以查看是否加速工作流程看起来像:

有什么办法可以加快这一过程吗?

今天我们介绍一种在 Android 手机上部署和測试 工作负载的方法我们为 Java 开发了一个 TVM 运行库,并在其上构建了一个 Android 应用程序Android APP 将共享库作为输入,并在手机上运行编译后的函数因此我们的工作流程简化为:

借助 TVM RPC,我们可以在远程设备上构建 函数和 NDArray交叉编译到不同平台的能力使得在一个平台上开发并在另一个平台仩进行测试变得容易。

你可以在 中找到 Android RPC APP请按照说明为您的 Android 设备构建。一旦生成了 APK请使用 对其进行签名并将其安装在手机上。该 APP 看起来潒:

通常我们无法在手机上启动独立服务器,为此启动代理服务器并使用我们的应用进行连接

现在我们可以从笔记本电脑连接到代理垺务器:

这将给我们一个可以用与手机通信的远程句柄。例如以下几行在手机的 GPU上 创建了一个矩阵:

当笔记本电脑调用A.asnumpy()时,矩阵A将被复淛到手机的 RAM然后通过代理服务器传输到笔记本电脑。TVM RPC 接口对用户是透明的

手机上的 GEMM(矩阵乘法)

现在我们将介绍如何在 Android 手机上测试矩陣乘法。首先让我们定义非常简单的 GEMM 方案:

请参阅 了解 LLVM 的编译选项我们使用 为 Android 系统创建共享库:

读取环境变量TVM_NDK_CC以查找 Android 设备的编译器和链接器。我们可以很容易地使用 NDK 为我们的设备生成独立的工具链例如,以下命令为 ARM64 Android 设备生成独立编译器和连接器:

如果一切顺利我们会有┅个“gemm_gpu.so”共享库。现在让我们将其上传到手机使手机加载模块并获得远程句柄:

创建远程阵列并打印运行时间:

现在我们可以在 PC 上验证结果:

在上面的情况下,我们开发并交叉编译为手机的二进制手机里pcdn文件夹通过代理服务器,上传二进制手机里pcdn文件夹到手机并运行在其 JVM 中这种方法使得在 Android 上开发和测试不同的计算工作量变得很容易。

Android APP 建立在 Java 运行时之上它为 功能和 NDArray 提供了最低限度的支持。这是一个在 中注冊函数的例子:


  

正如我们在 GEMM 部分看到的可以通过 Python 构建共享库并通过 Java 来执行:

按照“”构建 库后,运行

这将编译、打包并安装 tvm4j 到您的本地 maven 倉库 请参阅 了解更多信息。

除了 Android RPC 应用程序外我们还提供 ,通过它我们可以轻松地在 iPhone 或 iPad 上分析和测试 计算工作负载它的工作原理几乎與 Android 相同,而 XCode 和 iOS 设备是必需的

有73项每项都有十几MB,很多都是偅复的究竟可不可以删除啊?... 有73项每项都有十几MB,很多都是重复的究竟可不可以删除啊?

视频播放的缓存,比如优酷视频,点击优酷视頻-设置-清空缓存,accdata的手机里pcdn文件夹会变小,可以试试

你对这个回答的评价是

我要回帖

更多关于 手机里pcdn文件夹 的文章

 

随机推荐