| 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 contextsMaximum number of queuesMaximum 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. |