NVIDIA® Jetson™ code generation - simple
Optimised programming for NVIDIA® Jetson™ solutions with emmtrix Parallel Studio
emmtrix Parallel Studio introduces a new workflow to program the Jetson™ platform. Automatic algorithms analyze the runtime of the different parts of the application and distribute them on the CPU cores of the SoC. With the help of the hierarchical program view, developers may select compute-intensive tasks for the execution on the GPU. An automatic transformation framework will extract the equivalent kernels with full support for three dimensions. In an iterative workflow, the program can be evaluated and profiled on the platform and the results can be fed back to emmtrix Parallel Studio for further optimization steps.
- Achieve significant performance boost with both, the CPU cores and the GPU
- Automatic generation of parallel C code and CUDA® code from MATLAB®, Simulink®, Scilab and Xcos
- Interactive parallelization with user-friendly Eclipse-based GUI
- Support for common parallel programming interface like MPI, OpenMP, pthreads, etc.
Challenges with NVIDIA® Jetson™ programming
The NVIDIA® Jetson™ architecture uses a system on a chip (SoC) that combines the power of multiple ARM® Cortex A57 CPU cores with 256 NVIDIA Maxwell GPU cores. This combination allows fast processing of compute-intensive applications by accelerating the most data-intensive tasks on the GPU cores while using the multicore processor for analysis and decision making tasks.
To get the most performance out of the SoC requires a smart distribution of the work across all processing cores, on both CPU and GPU. In order to achieve a fast parallel execution, a good balance between the loads on the different cores is necessary. This requires very detailed knowledge of the timings on the hardware.
In addition to the challenges with this parallelization task, programming the SoC necessitates the use of different programming languages for the different types of processing cores: common programming languages like C/C++ for the CPU cores and specific languages like CUDA® for the GPU cores.