开发人员专区

先进的软件开发与MATLAB

即将绕个圈子

在云CI服务。他们是美丽的。所有你需要做的就是放下在你的仓库有点O” YAML和自动构建和测试基础设施开始创建你提交了一些很好的清洁乐趣的整个世界。那种好干净的乐趣,实际上使你的代码更加清晰。你并不需要设置你的机器上,你不需要对电源按钮担心您的CI服务器(或座席为此事)上。这一切都只是做了你和它的可爱。

不久前,我们展示了MATLAB、Simulink和大多数工具箱是如何在公共项目的各金宝app种云CI服务上得到支持的。金宝app今天,我想重点介绍其中一项服务,CircleCI,在更详细一点。CircleCI是一个顶级CI平台,双方的GitHub和到位桶支持库。金宝app

为了向你展示如何可以与MATLAB和Simulink代码的工作,让我提醒你使用多任务级联卷积金宝app神经网络(MTCNN)我们深深的学习资源库突出的人脸检测。这是一个很好的项目,我们可以用它来展示一些像CircleCI一个平台的好处。

首先,让我们来看看它是多么容易让我们运行测试此回购指定要运行。该回购使用MATLAB项目标记所有要运行的测试。假设仓库已经设置建立与CircleCI,你就可以立即获得来自好处圆球,我们已经发展到简化您的MATLAB和Simulink构建金宝app。什么是球体你说什么?他们是CI配置的共享掘金。在我们的情况下,它可以帮助你确定如何可以得到MATLAB来CircleCI云剂,你怎么可以运行任意命令,MATLAB,以及如何可以轻松地运行一些最常见的选项的测试。

例如,假设我们通过运行我们的测试,并产生一对夫妇流行的文物,一个JUnit风格的XML输出和PDF测试报告,前者与CircleCI测试结果的意见整合,而后者为了存档以及丰富的MATLAB和Simulink启动金宝appspecific reporting information (e.g. like we see在这里在这里,和在这里)。首先,我们开始通过向CircleCI YAML配置文件中的一些版本的信息,无论是什么版本的CircleCI配置的规格我们使用,我们将使用什么我们ORB的版本。我们将使用规范和ORB两者的最新版本。

然后,您设置的执行类型,它是机器或图像,你将使用到运行构建。在这种情况下,我们将使用最新的Ubuntu版本。请注意,如果你是在一个公共项目使用的是Linux云代理机图片,你可以设置MATLAB快速,方便地使用安装用我们的球体得到的元素。

一旦MATLAB的平方了,然后你可以定义可在工作流通过引用从试运行生产我们的JUnit和PDF文物工作运行试验元素,只是告诉宝珠在哪里创建的工件。

然后,我们,作为同一作业的一部分,使用内置存储这些文物store_test_results元件(处理的JUnit式XML输出),并且store_artifacts元素,以节省掉这两个PDF报告和XML保存保存。这里的是什么样子:

最后,我们引用这项工作我们已经在工作流定义,我们都很好。

版本:2.1宝珠:MATLAB:mathworks/matlab@0.4.0工作:运行所有-DEM-宏伟与Matlab检验:机械:图片:Ubuntu的2004:202101-01步骤: - 结帐 -  MATLAB /安装 -  MATLAB /运行试验: test-results-junit: artifacts/junit/testResults.xml test-results-pdf: artifacts/pdf/testResults.pdf - store_test_results: path: artifacts/junit - store_artifacts: path: artifacts workflows: test: jobs: - run-all-dem-magnificient-matlab-tests

好了,现在让我们来运行构建与,看看我们都看着像:

注意我加快了这个版本的视频简洁。但是你可以看到,CircleCI旋转起来生成代理,MATLAB是在此代理设置,并测试运行和通过,都在短短的几分钟内。更重要的是,它救了我们一些文物!让我们看看该PDF报告:

好吧,这里有一对夫妇很酷的事情:

  1. 可以说是藏物吗?很容易找到一种流线型的方法来存储保存记录的工件,比如pdf结果
  2. 这些报告可以包含额外的丰富内容,如图像、图和可视化、截图,如果你正在使用Simulink Test,信号级别比较和可视化。金宝app涂料。在本例中,我们包含了从示例文档代码生成的图像,经过测试以确保示例执行无误,并使用FigureDiagnostic记录结果图(类似于我们在这篇文章)。
  3. 看“马克过滤测试!好吧,虽然不超爽,我们有一些测试,被过滤掉,它至少是不错的,我们能够从报告中看到这个漂亮干净。挖成我们看到,这些测试将被过滤掉的原因是因为他们需要一个GPU来运行诊断程序。

不错啊,在最后一点上,我们不能太挑剔了吧?毕竟,我们正在利用该处理所有为我们提供机器配置的云服务,所以我们不应该期望能够运行测试,在云中的GPU需要。我想我们只需要记得上一次我们自己的机器用GPU来运行这些测试时间处于脱机状态。

错误!

事实证明,CircleCI有一个计划,金宝app支持使用GPU硬件设备!那不是很好吗?在我们的构建中尝试它只是意味着从下面更改我们的yaml代码片段:

机:形象:ubuntu-2004:202101-01

......到是这样的:

resource_class的:gpu.nvidia.small机:图像:ubuntu的-1604-CUDA-11.1:202012-01

现在,如果你CircleCI规划已启用的GPU,与小片段,你可以看到我们打造的是现在用的是机器与GPU:

但是,我们有一个问题!

看来有些测试失败了。这是出乎意料的(真的,在我写这个博客的时候是出乎意料的!)事实证明,当你不在自动化中测试时,测试失败就会出现。这就是为什么要在CI下实现所有测试的自动化。在这种情况下,随着gpuArray支持的引入,这个深度学习存储库在R2020b中开始失败金宝appselectStrongestBbox从计算机视觉工具箱。长话短说,这是一个简单的办法,我们只是需要一个游移gather待命gpuArray以考虑在早期版本中这些差异。但是,刚开这个错误的早期检测要求我们运行在GPU的硬件,所以这是CircleCI平台的一个很大的特点来启用。此外,采取干净的测试结果显示失败的注意,我们看到的,因为我们上传了JUnit的风格XML工件。不错的奖金。

我似乎记得一次或两次,我听说的GPU可在深学习应用程序,否则有用吗?这听起来对吗?微笑试想一下,你可以用MATLAB&CircleCI的力量做自动化的工作流程。




发布时间与MATLAB®R2021a

|

评论

要发表评论,请点击在这里在您的帐户MathWorks公司签署或创建一个新的。