This answer record serves as the Vivado SDAccel 2017.2 Release Notes, and contains Links to information about what is included in the update.
Please seek technical support via the SD Accel Board. The Xilinx Forums are a great resource for technical support.
The entire Xilinx Community is available to help here, and you can ask questions and collaborate with Xilinx experts to get the solutions you need.
Vivado 2017.2 SDAccel addresses the following issues:
SDAccel Development Environment Features and updates:
- RTL Kernel Support
- Addition of new examples on github to demonstrate multiple RTL kernels along with OpenCL kernels
- Several fixes to the RTL Kernel Flow and RTL Kernel Wizard.
- The SDAccel compiler employs mathematical techniques to identify statically the access pattern of inputs and outputs to perform better memory coalescing and burst inferencing.
This is an early access feature and can be enabled with both of the following xocc options:
- --xp param:compiler.version=39
- --xp param:compiler.advancedLoopOptimizations=true
SDAccel Development Enhancements:
- SDx Eclipse UI
- Platform setup and project creation.
- Add custom platform(s) without creating an SDx project.
- SDx example store: access to GitHub SDSoC and SDAccel examples.
- Wizard for creating RTL kernels.
- Support for accelerating C function templates.
- Launch HLS for specified hardware functions.
- New post-implementation utilization reports.
- Collapsible headers on all SDx reports.
- Xilinx Runtime
- Support for the Production level xocl kernel driver, based on Linux kernel GEM
- Framework for PCIe based DSAs has the following features:
- Support for host page pinning which improves DMA bandwidth.
- Uses Linux kernel based memory management for device memory management.
- Is multi-threading safe and provides a single device node per device for all device operations.
- xocl requires Redhat 6.9 or higher version or Ubuntu 16.04.
- xocl driver is installed by default with xbinst. The rest of the steps (for example, running ./install.sh) remain the same.
- Features ROM in device which advertises device configuration.
- Enhanced runtime to support pinning all threads created by runtime to CPUs specified in sdaccel.ini.
For example, pin all xocl created threads to cpu #4 and cpu #5:
% cat sdaccel.ini
- Migration to xclbin2 format, which has features like skipping bitstream re-download if the same bitstream is already running.
- Calling clReleaseContext() truly releases exclusive lock on the device so that another concurrently running application can create context with clCreateContext().
- Several new features in xbask including the new commands scan, mem, and status.
- xbsak flash requires root permissions.
- xocc supports set target kernel frequency. Overriding kernel clock frequency with lower frequency might help with designs that fail to meet timing on platform clocks.
- --kernel_frequency<arg> sets a user-defined clock frequency in MHz for kernel, overriding a default value from DSA.
- For a kernel compilation to change target to 150 MHz, add --kernel_frequency 150.
- Added support for platform repo_path in xbinst.
- A new switch --platform_repo_paths and an existing environment variable PLATFORM_REPO_PATHS in xbinst.
The switch passed from the command line has a higher priority than the value passed from the environment variable.
- GDB extension to provide visibility into OpenCL data structures cl_queue, cl_event, and cl_mem to debug host application hangs.
- Enhanced debug checks in Hardware Emulation Flow covering
- Kernel or System transactions hangs.
- Uninitialized memory read by kernel.
- Out of DDR Range access.
- Out of Bounds array access.
- Periodic aliveness status during long Hardware Emulation runs.
- Fixes to application debug for multi-threaded host application
- Hardware emulation supports clCreateBuffer call before clCreateProgram.