Machine vision applications have to perform intensive, sophisticated image processing algorithms with input from several cameras to detect specified objects on which virtual information is overlaid. Drones, high-end wearables, robots and cars demand more and more visual intelligence to navigate the world around them. This requires high-performance computational imaging and visual awareness in devices where every last drop of battery power counts. Today’s applications processors cannot handle these complex imaging digital signal processing (DSP) functions. These embedded systems require parallel software code that is optimized for performance and power consumption on multicore platforms. Silexica’s tools detect parallelism and enable rapid development of multi-threaded code to be optimally distributed across multicore hardware platforms with less time and dramatically higher performance than traditional software development techniques.
Auto makers are facing complex software challenges as modern cars are equipped with different kinds of sensors such as LIDAR, radar, camera, thermal imaging camera and ultrasonic sensors. The ever increasing level of automation in today’s cars requires more computing capabilities than ever before using dozens of electronic control units (ECUs). The functions of those ECUs are based on decades of software development causing a huge challenge of porting legacy source code to emerging automotive multicore systems. Additionally, Advanced Driver Assistance Systems (ADAS) such as Blind Spot Monitor and Lane Assist utilize numerous different positioning and sensing technologies to assist drivers in real-time, increasing computing demands even more. Yet, Advanced Driver Assistance Systems are only the first steps on the path to autonomous, self-driving cars. The increasing degree of autonomy in cars is driven by deep learning, computer vision and sensor fusion. As a result, a large number of distributed ECUs have been moved to a centralized supercomputer platform. This major shift in the industry leads to massive challenges with software partitioning and platform selection. Silexica’s tools automatically partition sequential code, effectively distribute it to a given multicore platform and help with platform selection by fast and accurate design space exploration.