SLX

여러분의 가장 어려운 요구 기준을 만족하는 프로그래밍 도구

Silexica

분석

anim-loader-1
SLX Analyse

SLX는 소스 코드를 정교한 컴파일러 기술을 사용하여 분석함으로써 여러분의 응용 프로그램을 이해한다. 이 데이터를 추상적인 타겟 플랫폼 모델이나 보드 상의 실행 흔적과 필요한 정보로 보충하여 주어진 타겟의 타이밍 행동 양식을 이해한다. 다음으로, 패턴을 통과한 프레임워크 (pattern-based framework)로 코드에서 활용하지 못하고 빠뜨린 병렬 처리를 식별함으로써 코드를 멀티 코어에서 실행할 수 있도록 분할할 수 있게 해준다. 태스크 레벨, 파이프라인 레벨 혹은 데이터 레벨의 병렬 처리를 포함하여 여러 수준의 병렬 처리를 지원한다. 이 정보를 수집하여 다음 단계로 전달하고, 거기서 주어진 타겟 플랫폼에서의 응용 프로그램의 행동을 더욱 이해하고 최적화한다.

더 많은 "분석" 세부 내용

SLX 기술은 소스 코드를 분석하여 응용 프로그램의 정확한 행동을 이해한다. 이는 정적 및 동적 컴파일러 기술 모두를 활용한 정교한 컴파일러 기술을 사용하여 모든 데이터-의존성 및 제어-의존성을 식별하고, 완전한 응용 모델을 구축한다. 이는 응용 프로그램의 호출 그래프 (call graph), 로컬, 힙 및 글로벌 변수의 읽기, 쓰기 접근, 그리고 메모리 계층 내에서의 메모리 접근의 완전한 이해를 포함한다. 병렬 응용 프로그램에 대해서는 기존의 통신 및 동기화 패턴 또한 분석한다.

패턴을 통과한 프레임워크는 빠뜨린 추가적인 병렬 처리 기회를 식별한다. 임베디드 고성능 연산 코드, AUTOSAR 고유 응용 프로그램을 위한 러너블-레벨의 병렬 처리 혹은 FPGA 기반 플랫폼을 타겟으로 한 파이프라인 레벨 병렬 처리의 자동 추출을 위한 태스크 레벨, 파이프라인 레벨 혹은 데이터 레벨의 병렬 처리를 포함하여 여러 수준의 병렬 처리를 지원한다. 이 프레임워크는 추가적인 업계 요구 기준에 쉽게 맞출 수 있다.

Silexica 플랫폼 모델이나 타겟 흔적 (trace)로부터 자동으로 도출한 타이밍 정보는 응용 프로그램 모델을 타겟 행동의 필요 타이밍 정보로 보충한다. 여기서, 서로 다른 유형의 프로세서만 아니라 타겟 플랫폼의 각기 다른 메모리 계층 및 다른 내부 연결 아키텍처 또한 고려한다. 내장된 재구성 가능한 캐시 분석기가 Silexica의 유연한 플랫폼 모델링 기반 기술에 포함되어 있다. 이는 사용자가 여러 다양한 메모리 아키텍처 및 구성 파라미터를 지정할 수 있도록 해준다.

많은 각기 다른 입력 포맷을 지원한다. 이는 순차 C/C++로 쓰여진 응용 프로그램, POSIX 쓰레드, 데이터 흐름, 프로세스 네트워크 및 태스크 그래프사양을 사용한 응용 프로그램 및 AUTOSAR 규약에 따르는 소스 코드를 포함한다

Product-Analyse-Static-and-Dynamic-Source-Code-Analysis-analyze

정적 및 동적
소스 코드 분석

Cache-Memory-and-Communication-Analysis-analyze

캐시, 메모리 및 통신 분석

Cross-target-Performance-Estimation-analyze

크로스-타겟 성능 예측

Product-Analyse-C-C-data-flow-task-grapfs-etc-analyze

C/C++, 데이터 흐름, 태스크-그래프, OSEK 태스크, POSIX 쓰레드

Silexica

최적화

anim-loader-2
SLX Optimize

정교한 최적화 기술은 이전 단계에서 수집한 분석 정보를 사용하여 응용 프로그램을 주어진 동종 혹은 이종 멀티 코어 플랫폼에 자동으로 분배한다. 최적화는 각기 다른 실시간 및 자원 제약 조건을 동시에 만족하면서도 성능, 소비 전력 및 메모리 필요 기준에 맞춰 진행된다. 최적화 결과 혹은 수동 사용자 입력에 근거하여 첨단 시뮬레이션 기술은 응용 프로그램의 타겟 시스템에서의 행동을 예측하고 성능, 실행 흐름, 태스크 상태 및 프로세서와 통신 아키텍처 모두의 활용도에 대한 상세한 피드백을 제공한다.

더 많은 "최적화" 세부 내용

정교한 최적화 기술은 프로세스를 이종 코어와 하드웨어 가속기에 최적으로 매핑, 논리 채널을 플랫폼 배선 및 메모리로의 가장 빠른 매핑, 프로세스 간 통신에 사용되는 버퍼를 위한 가장 효과적인 메모리 할당을 자동으로 선택할 수 있도록 해준다. 사용할 수 있는 최적화 기준은 성능, 소비 전력 및 메모리이며, 이와 동시에 많은 수의 각기 다른 실시간 제약 조건 및 자원 제약 조건을 만족한다.

도구는 사용자에게 분배 결정을 제안하는 것에 그치지 않는다. 첨단의 시뮬레이션 기법은 응용 프로그램의 타겟 행동을 시뮬레이션하고 프로세서와 통신 아키텍처 모두에의 실행 행동, 상세한 태스크 상태 및 플랫폼 활용도에 대한 피드백을 제공한다. 첨단 메모리 및 경합 (contention) 모델링 기법은 타겟 플랫폼 행동을 시뮬레이션하는 동시에 정확도와 속도에 대한 올바른 트레이드오프를 가능하게 한다. 선택 사양으로, 전력 소모에 최적화된 분배를 위해서 요구되는 소비 전력 상태와 응용 프로그램의 상세한 전력 및 에너지 소비 분석과 함께 측정 혹은 예측 소비 전력 정보를 사용할 수 있다.

사용자 편집이 가능하고 추상적인 멀티 코어 플랫폼 모델은 응용 프로그램을 고정 플랫폼에 분배할 뿐만 아니라 동시에 여러 다수의 플랫폼에도 분배한다. 이는 아키텍트가 주어진 응용 프로그램에 대해 이상적인 기성 (off-the-shelf) 멀티 코어 플랫폼을 검색하고 소프트웨어 및 하드웨어 변경에 대해 결과 예측 분석 (What-if analysis)을 지원하여 차세대 멀티 코어 시스템에 대한 탐구, 설계 및 발전을 추구하게 한다.

이는 응용 프로그램의 작업량의 변화에 대한 영향을 예측하거나 프로세서, 메모리 및 하드웨어 가속기의 추가로 인한 잠재적인 응용 프로그램 가속을 분석한다. 이는 최신 명령어 세트 시뮬레이터에 비해 처리 시간을 10배 이상 빠르게 할 수 있도록 하여 차세대 제품의 설계를 크게 향상시킨다

Power-performance-and-memory-driven-distribution-of-tasks-and-buffers-optimize

전력 소비, 성능 및 메모리에 맞춘 소프트웨어 분배

Powerful-scheduling-analysis-optimize

여유가 없는 타이밍 제약 조건 하에서 태스크 스케줄 최적화

Element 1-optimize

DVFS 소비 전력 상태를 선택하여 피크 및 평균 전력 소비를 줄인다.

Product-Optimize-Architecture-Exploration-and-Multicore-Communication-Analysis-optimize

아키텍처 탐구 및 멀티 코어 통신 분석

Silexica

구현

anim-loader-3
SLX Implement

Silexica 유일의 소스 코드간 컴파일러 기술은 개발자가 소프트웨어 변경 처리 시간 및 생산성 수준을 획기적으로 개선할 수 있도록 해준다. 분석 및 최적화 단계에서의 모든 발견 사항은 오리지널 소스 코드 라인과 변수에 직접적으로 연결된다. 이는 주어진 정확하고 포괄적인 사용자 피드백과 자동 소스 코드간 재작성에서 유일한 능력을 갖게 한다. 사용자가 기존 순차 코드를 옮길 수 있도록 강력한 힌트가 시용자에게 보여지거나 프라그마를 삽입함으로써 소스 코드가 자동으로 재 작성된다. 기존의 병렬 코드, 예를 들어, 데이터 흐름, 프로세스 네트워크 혹은 AUTOSAR 규격에 대해서, 소스간 프레임워크는 태스크 관리, 동기화 및 통신을 위해 API를 자동으로 삽입한다.

더 많은 "구현" 세부 내용

Silexica 유일의 소스 코드간 컴파일러 기술은 개발자가 소프트웨어 변경 처리 시간 및 생산성 수준을 획기적으로 개선할 수 있도록 해주어 가치없는 반복 작업에 시간을 낭비하는 대신 자신의 요구 기준에 전념할 수 있도록 해준다.

Silexica의 기술은 분석 및 최적화 단계에서 발견한 모든 사항을 원 소스 코드 라인 및 그 변수에 직접 연결을 가능하게 한다. 이는 주어진 정확하고 포괄적인 사용자 피드백과 자동 소스 코드간 재작성에서 유일한 능력을 갖게 한다.

사용자가 기존 순차 코드를 옮길 수 있도록 강력한 힌트가 시용자에게 보여져 소스 코드를 재 작성할 수 있게 하거나, 기존 공유 메모리 API 혹은 커스텀 내부 워크플로우를 위해 프라그마를 삽입함으로써 기존 코드를 자동으로 재 작성할 수 있다

기존의 병렬 코드, 예를 들어, 데이터 흐름, 프로세스 네트워크 혹은 AUTOSAR 규격에 대해서는, 강력한 소스간 프레임워크는 태스크 관리, 동기화 및 통신을 위해 API를 타겟 멀티 코어 플랫폼에 대해 사용 가능한 런타임 환경 및 운영 체제에서 선택하여 자동으로 삽입한다. 플랫폼 원시 컴파일러 (native compiler) 툴체인을 사용하여 출력을 바로 컴파일하고 타겟에 적용할 수 있다.

Clear-suggestions-where-to-spend-time-with-direct-link-to-original-source-code-implement

멀티 코어로 변경 과정에서 시간 소비를 줄이는 분명한 제안

mapping-dependent-code-generation-implement

멀티 코어를 위한 매핑 종속 코드 생성

automatic-insertion-of-pragmas-openmp-HLS-etc-implement

프라그마 자동 삽입 (OpenMP, HLS, 등)

AUTOSAR-support-implement

AUTOSAR 지원

Silexica

Silexica

Silexica

사례 연구

사례 연구 - Denso
현재의 자동차 제어 소프트웨어를 멀티 코어 ECU로 마이그레이션
더 읽어 보세요
사례 연구 - Huawei
Silexica의 도구를 사용하여 새로운 기술의 소비 전력 효율 증대를 정확히 예측할 수 있다.
더 읽어 보세요
사례 연구 - Ricoh
SLX를 사용하여 OpenCV 컴퓨터 비전 라이브러리에서 숨겨진 병렬성을 발견하고 악용
더 읽어 보세요
Silexica

연락하세요

질문 있으신가요?
Silexica 유럽
Silexica 미국
Silexica 아시아
Silexica 일본