赋能智能边缘 解决软件/硬件复杂性问题

Silexica

SLX C/C++

c-c++-c-c
anim-loader-

在复杂 SoCs 上对 C/C++ 程序进行优化需要对软件和硬件两者的全面理解。开发人员面临的一大严峻任务即是对运行于包含各种计算引擎的多核 SoC 上之顺序和并行代码进行优化。为了最有效地利用CPU、DSP和FPGA,需要全面了解应用程序、线程和变量之间的代码结构和相互依赖性,从而简化软件开发流程,引导代码重构和软件设计优化。

SLX C / C ++具有独特的可操作性见解,支持对异构多核平台上的C/C ++应用程序进行同步开发和优化。软件专业人员能够针对特定多核SoC上的特定代码进行优化,从而达到优化软件架构和提升性能的目标。SLX将硬件理解与代码分析相结合,将其独特的洞察功能运用于应用程序的执行中,同时为原始源代码提供具有完全可追溯性的反馈循环(feedback loop)。

产品简介下载
1-scheduling-design

静态、动态和语义代码分析

10-c-c

见解具有可操作性,大幅提高软件性能

11-c-c

集成至Eclipse GUI或CI工作流

功能特点

为多程序提供静态和动态代码相结合的分析

当前比较先进的代码分析方法提供的软件架构视图有其局限性。静态代码分析发现的是明显的错误或被忽略的编码指南。动态分析提供的是单个分析运行,但不了解其行为的变化,也无法了解连接返回至源代码的根本原因。

SLX C/C++分析包含从静态软件架构到对并行性、同步性和数据流等动态行为的深入理解。 其内容提供对源代码的实时概述,防止架构侵蚀,以及提供具有可操作性的见解等,从而保证软件执行的优化。

CodeAnalysis2-c-c

使用SLX C/C ++进行软件架构分析

SLX 的独特功能为执行情况提供了全面深入的见解。该结果权衡了软件优化的成本和收益,能进一步利用目标资源。主要功能包括:

  • 为多二进制(multi-binary)和多线程( multi-threaded)应用程序提供深入的应用程序洞察。 通过静态、动态和语义分析的组合,SLX将线程族谱(thread genealogy)、通信、线程同步(synchronization)和数据依赖性进行可视化,此外还将提供源代码端的实时架构概述,随时检查是否与预想的架构保持了一致。 SLX是目前唯一可提供此级别可操作见解的开发工具。
  • 通过对函数、线程和应用程序级别执行的分析,有效识别通信和内存的瓶颈。SLX对内存(POSIX共享内存变量)的分析帮助您了解线程之间,以及与其他应用程序之间的通信情况。SLX显示对变量的所有访问,其中不仅有数组和结构的子对象,而且也包括了通过指针的访问。此功能提供了基于实际源代码的最新架构的概述,从而帮助进行功能调试、代码重构,以及文档生成。
  • 通过执行保护性分析,确定缺失的线程间和进程间共享内存保护(信号量、互斥量等),预防数据损坏。 SLX非常了解保护机制,可以直接指出有问题的源代码行,即时修复代码。此功能不仅可以用于检测线程之间的数据争用,还可以检测单独的进程和应用程序之间的数据争用。
  • 通过快速执行“假设(what-if)”分析,将代码执行可视化,从而对异构多核系统上的硬件计算模块的软件分发进行优化。 该优化过程由性能、功耗及内存需求驱动,充分考虑特定代码库的需求,并且符合标准化硬件描述格式(多核协会颁布的SHIM2)对 CPU、DSP、FPGA 和 GPU 的组合的描述标准。
  • 自动识别代码中的优化机会,节省大量开发时间。 SLX提供指导,协助代码重构,提高性能,精准识别并行机会。支持对不同级别(包括任务、管道和数据级并行性)的并行性检测。
loader

SILEXICA AROUND THE WORLD

Silexica

Contact us