December 2017 |
2017.12.08 |
|
November 2017 |
2017.11.06 |
- Moved topics into separate chapters.
- Rebranded references to the following:
- The macro ALTERA_CL to INTELFPGA_CL.
- The environment variable ALTERAOCLSDKROOT to INTELFPGAOCLSDKROOT.
- The environment variable CL_CONTEXT_PROGRAM_VARIABLES_TOTAL_SIZE_ALTERA to CL_CONTEXT_PROGRAM_VARIABLES_TOTAL_SIZE_INTELFPGA
- clGetExtensionFunctionAddress to clGetExtensionFunctionAddressIntelFPGA
- The environment variable CL_CONTEXT_EMULATOR_DEVICE_ALTERA to CL_CONTEXT_EMULATOR_DEVICE_INTELFPGA
- write_channel_altera to write_channel_intel
- write_channel_nb_altera to write_channel_nb_intel
- CL_MEM_BANK to CL_CHANNEL
- CL_MEM_BANK_1_INTEL to CL_CHANNEL_1_INTELFPGA
- CL_MEM_BANK_2_INTEL to CL_CHANNEL_2_INTELFPGA
- Arria 10 to Intel® Arria® 10
- Quartus Prime to Intel Quartus Prime
- Intel® FPGA SDK for OpenCL™ Profiler to Intel FPGA Dynamic Profiler for OpenCL
- TimeQuest Timing Analyzer to Timing Analyzer
- Qsys Pro to Platform Designer
- In Intel FPGA SDK for OpenCL FPGA Programming Flow, added FPGA data flow architecture diagram and related text.
|
May 2017 |
2017.05.08 |
|
October 2016 |
2016.10.31 |
- Rebranded the Altera SDK for OpenCL to Intel® FPGA SDK for OpenCL™ .
- Rebranded the Altera Offline Compiler to Intel® FPGA SDK for OpenCL™ Offline Compiler.
- Deprecated and removed support for big-endian system, resulting in the following documentation changes:
- Removed the topic Compiling a Kernel for a Big-Endian System (--big-endian).
- Removed big-endian (64-bit) from the list of architectures that the host application can target.
- Added the topic Displaying the Compilation Environment of an OpenCL Binary to introduce the aoc env command.
- Removed Adding Source References to Optimization Reports (-g) because the offline compiler automatically includes source information in the compiler reports and enables symbolic debug during emulation on an x86 Linux machine.
- Added the topic Removing Debug Data from Compiler Reports and Source Code from the .aocx File (-g0) to introduce the -g0 aoc command option.
- In Limitations of the Intel® FPGA SDK for OpenCL™ Emulator, removed the limitation "The Emulator does not support half data type".
- In Linking Your Host Application to the Khronos ICD Loader Library, provided an update that the Intel® -supplied ICD Loader Library supports OpenCL Specification version 1.0 as well as implemented APIs from the OpenCL Specification versions 1.1, 1.2, and 2.0.
- In Managing an FPGA Board, provided the following updates:
- Noted that the SDK supports installation of multiple Custom Platforms. To use the SDK utilities on each board in a multi-board installation, the AOCL_BOARD_PACKAGE_ROOT environment variable setting must correspond to the Custom Platform subdirectory of the associated board.
- Noted that in a system with multiple Custom Platforms, the host program should use ACD to discover the boards instead of directly linking to the MMD libraries.
- Added the topic Reviewing Your Kernel's report.html File and included deprecation notice for the analyze-area utility option. As a result of introducing the HTML report, removed the following topics:
- Reviewing Your Kernel's Resource Usage Information in the Area Report
- Accessing the Area Report
- Layout of the Area Report
- In Multistep Design Flow, updated the design steps and the figure The Multistep Intel® FPGA SDK for OpenCL™ Design Flow to replace area report with the HTML report, and remove information on enabling -g.
- In Inferring a Register, corrected the text following the code snippet that explained how the offline compiler decide on the implementation of the array in hardware.
- In Linking to the ICD Loader Library on Windows, updated the text to improve clarity.
- In Support Statuses of OpenCL Features section, made the following updates:
- Rebranded the Altera SDK for OpenCL to Intel® FPGA SDK for OpenCL™ .
- Rebranded the Altera Offline Compiler to Intel® FPGA SDK for OpenCL™ Offline Compiler.
- Modified information in the Intel® FPGA SDK for OpenCL™ Allocation Limits section:
- Updated information regarding minimum global memory allocation by runtime.
- Updated the maximum number of queues from 70 to 256.
- Updated the maximum number of kernels per FPGA device from 64 to no static limit when compiling to hardware and 256 when compiling to emulator.
- In OpenCL 1.0 C Programming Language Implementation, under the Description column for half-precision float, added a note that this feature is supported in the Emulator. In addition, updated the support status of half-precision float from X to ○.
- Under Support Statuses of OpenCL 2.0 Features, added the topic OpenCL 2.0 Headers to explain that using the OpenCL 2.0 headers to call unsupported APIs results in an error.
|
May 2016 |
2016.05.02 |
- Added a schematic diagram of the AOCL programming model in the Altera SDK for OpenCL FPGA Programming Flow section.
- Moved the figure The AOCL FPGA Programming Flow to the Altera Offline Compiler Kernel Compilation Flows section.
- Updated the figure The Multistep AOCL Design Flow and associated text to include the Review Area Report step.
- Added information on the single-cycle floating-point accumulator feature for single work-item kernels. Refer to the Single-Cycle Floating-Point Accumulator for Single Work-Item Kernels section for more information.
- Added information in the Emulating Your OpenCL Kernel section on multi-device support for emulation alongside other OpenCL SDKs using ICD.
- Included information on the enhanced area report feature:
- Added the option to invoke the analyze-area AOCL utility command to generate an HTML area report.
- Included a topic that describes the layout of the HTML area report.
- In Linking to the ICD Loader Library on Windows, removed $(AOCL_LDLIBS) from the code example for the modified Makefile.
- In the Multiple Work-Item Ordering sections for channels and pipes, modified the characteristics that the AOCL uses to check whether the channel or pipe call is work-item invariant.
- Added Intel FPGA SDK for OpenCL Advanced Feature section.
- In OpenCL 1.2 Runtime Implementation under Support Statuses of OpenCL Features sections, noted that AOCL supports the clSetEventCallback, clGetKernelArgInfo, and clSetMemObjectDestructorCallback APIs.
|
November 2015 |
2015.11.02 |
- Added the option to invoke the aoc command with no argument to access the Altera Offline Compiler help menu.
- Updated the Multiple Host Threads section to specify that the OpenCL™ host runtime is thread-safe.
- Updated the following figure and sections to reflect multiple kernel source file support:
- The figure The AOCL FPGA Programming Flow in the AOCL FPGA Programming Flow section
- The Compiling Your Kernel to Create Hardware Configuration File section
- The Compiling Your Kernel without Building Hardware (-c) section
- In Multiple Work-Item Ordering for Channels, removed misleading text.
- Updated the Overview of Channels Implementation figure.
- Updated the following sections on OpenCL pipes:
- Overview of a Pipe Network Implementation figure in Overview of the OpenCL Pipe Functions
- Emulation support in Restrictions in OpenCL Pipes Implementation section
- Replaced erroneous code with the correct syntax
- Added link to Implementing I/O Pipes Using the io Attribute in Declaring the Pipe Handle
- Added a reminder in Programming an FPGA via the Host that you should release an event object after use to prevent excessive memory usage.
- In Support Statuses of OpenCL Features section, made the following updates:
|
May 2015 |
15.0.0 |
- In Guidelines for Naming the Kernel, added entry that advised against naming an OpenCL kernel kernel.cl.
- In Instrumenting the Kernel Pipeline with Performance Counters (--profile), specified that you should run the host application from a local disk to avoid potential delays caused by slow network disk accesses.
- In Emulating and Debugging Your OpenCL Kernel, modified Caution note to indicate that you must emulate a design targeting an SoC on a non-SoC board.
- In Emulating Your OpenCL Kernel, updated command to run the host application and added instruction for overriding default temporary directory containing <process_ID>-libkernel.so.
- Introduced the --high-effort aoc command flag in Resolving Hardware Generation Fitting Errors during Kernel Compilation.
- In Enabling Double Precision Floating-Point Operations, introduced the OPENCL EXTENSION pragma for enabling double precision floating-point operations.
- Introduced OpenCL pipes support. Refer to Implementing OpenCL Pipes (and subsequent subtopics) and Creating a Pipe Object in Your Host Application for more information.
- In AOCL Channels Extension: Restrictions, added code examples to demonstrate how to statically index into arrays of channel IDs.
- In Multiple Host Threads, added recommendation for synchronizing OpenCL host function calls in a multi-threaded host application.
- Introduced ICD and ACD support. Refer to Linking Your Host Application to the Khronos ICD Loader Library for more information.
- Introduced clGetBoardExtensionFunctionAddressAltera for referencing user-accessible functions. Refer to Accessing Custom Platform-Specific Functions for more information.
- In Support Statuses of OpenCL Features section, made the following updates:
- Listed the double precision floating-point functions that the Altera® SDK for OpenCL™ supports preliminarily.
- Added OpenCL C Programming Language Restrictions for Pipes.
|
December 2014 |
14.1.0 |
- Reorganized information flow. Information is now presented based on the tasks you might perform using the Altera® SDK for OpenCL™ (AOCL) or the Altera RTE for OpenCL.
- Removed information pertaining to the --util <N> and -O3 Altera Offline Compiler (AOC) options.
- Added the following information on PLDA QuickUDP IP core licensing in Compiling Your OpenCL Kernel:
- A PLDA QuickUDP IP core license is required for the Stratix® V Network Reference Platform or a Custom Platform that uses the QuickUDP IP core.
- Improper installation of the QuickUDP IP core license causes compilation to fail with an error message that refers to the QuickTCP IP core.
- Added reminder that conditionally shifting a large shift register is not recommended.
- Removed the Emulating Systems with Multiple Devices section. A new env CL_CONTEXT_EMULATOR_DEVICE_ALTERA=<number_of_devices> command is now available for emulating multiple devices.
- Removed language support limitation from the Limitations of the AOCL Emulator section.
- In AOCL Allocation Limits under Support Statuses of OpenCL Features section, updated the maximum number of kernels per FPGA device from 32 to 64.
|
June 2014 |
14.0.0 |
- Removed the --estimate-throughput and --sw-dimm-partition AOC options
- Added the -march=emulator, -g, --big-endian, and --profile AOC options
- --no-interleaving needs <global_memory_type> argument
- -fp-relaxed=true is now --fp-relaxed
- -fpc=true is now --fpc
- For non-SoC devices, aocl diagnostic is now aocl diagnose and aocl diagnose <device_name>
- program and flash need <device_name> arguments
- Added Identifying the Device Name of Your FPGA Board
- Added AOCL Profiler Utility
- Added AOCL Channels Extension and associated subsections
- Added Attributes for Channels
- Added Match Data Layouts of Host and Kernel Structure Data Types
- Added Register Inference and Shift Register Inference
- Added Channels and Multiple Command Queues
- Added Shared Memory Accesses for OpenCL Kernels Running on SoCs
- Added Collecting Profile Data During Kernel Execution
- Added Emulate and Debug Your OpenCL Kernel and associated subsections
- Updated AOC Kernel Compilation Flows
- Updated -v
- Updated Host Binary Requirement
- Combined Partitioning Global Memory Accesses and Partitioning Heterogeneous Global Memory Accesses into the section Partitioning Global Memory Accesses
- Updated AOC Allocation Limits in Appendix A
- Removed max_unroll_loops, max_share_resources, num_share_resources, and task kernel attributes
- Added packed, and aligned(<N>) kernel attributes
- In Support Statuses of OpenCL Features section, updated the following AOCL allocation limits:
- Maximum number of contexts
- Maximum number of queues
- Maximum number of event objects per context
|
December 2013 |
13.1.1 |
- Removed the section -W and -Werror, and replaced it with two sections: -W and -Werror.
- Updated the following contents to reflect multiple devices support:
- The figure The AOCL FPGA Programming Flow.
- --list-boards section.
- -board <board_name> section.
- Added the subsection Programming Multiple FPGA Devices under FPGA Programming.
- The following contents were added to reflect heterogeneous global memory support:
- --no-interleaving section.
- buffer_location kernel attribute under Kernel Pragmas and Attributes.
- Partitioning Heterogeneous Global Memory Accesses section.
- Modified support status designations in Appendix: Support Statuses of OpenCL Features.
- Removed information on OpenCL programming language restrictions from the section OpenCL Programming Language Implementation, and presented the information in a new section titled OpenCL Programming Language Restrictions.
|
November 2013 |
13.1.0 |
- Reorganized information flow.
- Updated and renamed Intel® FPGA SDK for OpenCL™ Compilation Flow to AOCL FPGA Programming Flow.
- Added figures One-Step AOC Compilation Flow and Two-Step AOC Compilation Flow.
- Updated the section Contents of the AOCL Version 13.1.
- Removed the following sections:
- OpenCL Kernel Source File Compilation.
- Using the Altera Offline Kernel Compiler.
- Setting Up Your FPGA Board.
- Targeting a Specific FPGA Board.
- Running Your OpenCL Application.
- Consolidating Your Kernel Source Files.
- Aligned Memory Allocation.
- Programming the FPGA Hardware.
- Programming the Flash Memory of an FPGA.
- Updated and renamed Compiling the OpenCL Kernel Source File to AOC Compilation Flows.
- Renamed Passing File Scope Structures to OpenCL Kernels to Use Structure Arguments in OpenCL Kernels.
- Updated and renamed Augmenting Your OpenCL Kernel by Specifying Kernel Attributes and Pragmas to Kernel Pragmas and Attributes.
- Renamed Loading Kernels onto an FPGA to FPGA Programming.
- Consolidated Compiling and Linking Your Host Program, Host Program Compilation Settings, and Library Paths and Links into a single section.
- Inserted the section Preprocessor Macros.
- Renamed Optimizing Global Memory Accesses to Partitioning Global Memory Accesses.
|
June 2013 |
13.0 SP1.0 |
- Added the section Setting Up Your FPGA Board.
- Removed the subsection Specifying a Target FPGA Board under Kernel Programming Considerations.
- Inserted the subsections Targeting a Specific FPGA Board and Generating Compilation Reports under Compiling the OpenCL Kernel Source File.
- Renamed File Scope __constant Address Space Qualifier to __constant Address Space Qualifiers, and inserted the following subsections:
- Function Scope __constant Variables.
- File Scope __constant Variables.
- Points to __constant Parameters from the Host.
- Inserted the subsection Passing File Scope Structures to OpenCL Kernels under Kernel Programming Considerations.
- Renamed Modifying Your OpenCL Kernel by Specifying Kernel Attributes and Pragmas to Augmenting Your OpenCL Kernel by Specifying Kernel Attributes and Pragmas.
- Updated content for the unroll pragma directive in the section Augmenting Your OpenCL Kernel by Specifying Kernel Attributes and Pragmas.
- Inserted the subsections Out-of-Order Command Queues and Modifying Host Program for Structure Parameter Conversion under Host Programming Considerations.
- Updated the sections Loading Kernels onto an FPGA Using clCreateProgramWithBinary and Aligned Memory Allocation.
- Updated flash programming instructions.
- Renamed Optional Extensions in Appendix B to Atomic Functions, and updated its content.
- Removed Platform Layer and Runtime Implementation from Appendix B.
|
May 2013 |
13.0.1 |
- Explicit memory fence functions are now supported; the entry is removed from the table OpenCL Programming Language Implementation.
- Updated the section Programming the Flash Memory of an FPGA.
- Added the section Modifying Your OpenCL Kernel by Specifying Kernel Attributes and Pragmas to introduce kernel attributes and pragmas that can be implemented to optimize kernel performance.
- Added the section Optimizing Global Memory Accesses to discuss data partitioning.
- Removed the section Programming the FPGA with the aocl program Command from Appendix A.
|
May 2013 |
13.0.0 |
- Updated compilation flow.
- Updated kernel compiler commands.
- Included Altera® OpenCL™ Utility commands. SDK for
- Added the section OpenCL Programming Considerations.
- Updated flash programming procedure and moved it to Appendix A.
- Included a new clCreateProgramWithBinary SDK for FPGA hardware programming flow.
- Moved the hostless clCreateProgramWithBinary hardware programming flow to Appendix A under the title Programming the FPGA with the aocl program Command.
- Moved updated information on allocation limits and OpenCL language support to Appendix B.
|
November 2012 |
12.1.0 |
Initial release. |