(2015年11月9日

使用云技术使硬件设计与软件设计有效沟通(含视频)

由雅各布Engblom

jakob-engblom-intro-picture

基于云的服务非常适合交流——在同事和朋友面前向某人发送一个URL比几乎所有其他获取信息的方式都要容易得多。当我们谈论硬件设计并将其提供给软件设计师时,最常用的方法仍然是原型板。也使用虚拟平台,但它们确实要求用户在本地安装并经常构建系统。在云中使用虚拟实验室时,我们可以在不涉及安装、管理和构建步骤的情况下获得虚拟平台(没有物理硬件!)的好处。

作为我们在Youtube上发布了一段视频,与风河螺旋实验室云很容易提供访问虚拟平台的未来或实验硬件的软件设计师-无需复制和安装虚拟平台。在云中托管虚拟平台意味着软件开发人员需要做的就是登录Lab cloud并上传他们的软件进行测试。

在视频中,我们使用一个向软件团队提供一个双核和一个八核配置的简单示例。对于现代soc家族的创建方式来说,探索具有不同数量核心和其他功能块的变体是很典型的,硬件设计人员需要与软件设计人员验证变体的实用性。我们使用不同数量的处理器内核,因为它们易于理解和测试,但它也可能是其他硬件特性,如计算加速器、不同速度的网络适配器,或两个平台之间的任何其他设备差异。使用虚拟平台是向软件设计师传达此类变体的标准方法,但平台的分发和更新是一个问题。硬件设计的每一个更改都应该产生一个新的平台版本,而这个版本又需要分发给用户。

因此,当使用虚拟平台向软件开发人员传达快速变化和可变的硬件设置时,保持平台与软件同步是非常重要的,同时也是相当困难的。当用户获得交付给他们的新版本时,旧版本往往会保留,因为卸载旧软件不如安装新软件有趣,而安装新软件最终几乎肯定会产生奇怪的错误,因为软件、硬件和文档在某些特定用户的机器上不同步。当使用基于云的解决方案时,这种管理变得非常不同。

例如,如下图所示,HW设计师正在复制一系列平台版本给SW团队,后者必须管理这些版本,并确保一旦旧版本过时就停止使用。

hlc-chipcomm-1

相反,如果我们使用Lab Cloud来交流设计,硬件团队就知道软件团队可用的版本是他们已经部署的最新版本。没有必要在SW团队内部追踪旧版本——他们没有任何本地版本可以不同步!

hlc-chipcomm-2

另一个好处是,HW团队可以控制云中的平台,可以为他们想要访问的人提供准确的访问权。有时,接触的范围可能非常广泛,比如公司里的每个人。在其他情况下,一个新平台只会由少数人试用。通过在云中管理访问控制,这真的很容易做到。平台的每个变体和每个版本都可以单独管理,旧版本可以归档到Lab Cloud中,以便与新版本进行比较。

当在硬件和软件的组合中出现问题时,Lab Cloud的协作特性可以用于精确地交流和帮助诊断问题。软件和硬件设计师无需围绕软件团队正在使用的平台的特定版本进行讨论,而可以围绕云中的特定问题进行特定会议,无需复制!

自己试试!

由于在云中的访问是如此容易,所以我们提供了在视频演示在实验室云!只需在Lab Cloud上创建一个帐户,登录,并从平台创建您自己的测试会话:

hlc-chipcomm-4

这些平台都配备了目标gcc,所以只需上传一个基于pthread的或其他并行Linux程序并运行它们。命令行上的“时间”实用程序应该足以判断这种规模下的并行化效率(如果软件确实可以扩展,那么多4倍的内核应该很容易测量)。下面是一个例子,运行视频中使用的测试程序:

hlc-chipcomm-3

要在这个平台上尝试自己的程序,首先找到一个合适的C语言或c++语言程序,该程序使用多个线程,并使用pthreads在Linux上运行。这个程序可以是一个C文件,也可以是包含makefile和配置的更复杂的设置——这没什么关系。

要让你的软件在演示平台上运行,请遵循以下说明:

  • 在Lab Cloud上建立一个帐户(通过去https://lab.cloud.windriver.com
  • 使用2核或8核启动新会话,只需在平台列表中查找图标。
  • 一旦建立了一个会话,使用“播放”按钮开始它
  • 一旦启动,使用“上传”按钮来上传你的C文件或程序的存档。或者,使用wget或curl从Internet上的某个位置检索归档文件。
  • 一旦上传了存档,就解包。
  • 像在主机上那样构建程序——配置、生成等。
  • 程序构建完成后,使用“time”命令运行时间,就像上面的截图所示。" time <程序名称和参数> "。
  • 如果您有一个线程计数参数,那么尝试使用不同的值来检查使用8核目标的伸缩性。对于试图使用整个主机的程序,比较2核和8核目标的时间。请注意,用户时间倾向于保持相当稳定,而实时时间将随着线程计数的变化而变化。

黑客快乐!

想要了解更多关于实验室云的功能,请阅读我们之前的博客文章:

以前的ETSI NFV会议的关键要点#12
下一个扩展Power架构应用程序