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

Silexica

SLX C/C++

front-cc-no-padding-home
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显示对变量的所有访问,其中不仅有数组和结构的子对象,而且也包括了通过指针的访问。此功能提供了基于实际源代码的最新架构的概述,从而帮助进行功能调试、代码重构,以及文档生成。
  • 通过执行保护性分析,确定缺失的线程间和进程间共享内存保护,例如信号量(semaphores)、互斥量(mutexes)等,预防数据损坏。 SLX非常了解保护机制,可以直接指出有问题的源代码行,并即时修复代码。此功能不仅可以用于检测线程之间的数据争用,还可以检测独立的进程和应用程序之间的数据争用。
  • 通过快速执行“假设(what-if)”分析,将代码执行可视化,从而对异构多核系统上的硬件计算模块的软件映射进行优化。该优化过程由性能、功耗及内存需求驱动,充分考虑特定代码库的需求,并且符合标准化硬件描述格式(多核协会颁布的SHIM2)对 CPU、DSP、FPGA的组合的描述标准。
  • 自动识别代码中的优化机会,节省大量开发时间。 SLX提供指导,协助代码重构,提高性能,精准识别并行机会。支持对不同级别(包括任务、流水线和数据级并行性)的并行性检测。
loader

SILEXICA全球各地办公室

Silexica

Contact us