Robuta

https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Debugging-OpenCL-Kernels?contentId=Q2E5b_iNs5W6D3yrLIozWA Debugging OpenCL Kernels - Debugging OpenCL Kernels - 2023.2 English - UG1393 For OpenCL kernels, additional runtime checks can be performed during software emulation. These additional checks include: Checking whether an OpenCL kernel... debuggingopenclkernelsenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Adding-C-Models-to-RTL-Kernels?contentId=a21jxT7BLIpYqZ345K~nSg Adding C-Models to RTL Kernels - Adding C-Models to RTL Kernels - 2022.1 English - UG1393 RTL kernels support the hardware emulation build, and the hardware build described in Build Targets, but an RTL kernel in its native form does not support... addingcmodelsrtlkernels https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/query?contentId=KqsQg4qMVRPUnAjUGENImQ query - query - 2020.2 English - UG1393 Important: This option cannot be used with embedded processor platforms. The query command returns detailed card status information in human readable format.... queryenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Profile-Summary Profile Summary - Profile Summary - 2023.1 English - UG1393 The xrt.run_summary file can be loaded into Vitis Analyzer and an example of the results is shown in the picture. The application run summary is presented... profile summaryenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Writing-a-Custom-Makefile?contentId=Sk4ISTL88l0lrF6j1rSU2w Writing a Custom Makefile - Writing a Custom Makefile - 2022.1 English - UG1393 Your custom Makefile should provide similar functions as the template Makefile. The basic steps to compile in VSC are similar to other Vitis tool flows, as... a customwritingmakefileenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/HW-Interfaces?contentId=LCnbo6cI6Ch7x8y6XgFXJw HW Interfaces - HW Interfaces - 2022.2 English - UG1393 The kernel interfaces are used to exchange the data with the host application, other kernels, or device I/Os. Non-software controlled kernels have the... hwinterfacesenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/xstatus-Commands?contentId=1ASRBcBTNxvZlqA5_2cllA xstatus Commands - xstatus Commands - 2022.2 English - UG1393 commandsenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/MATLAB-API-for-AI-Engine-Graphs?contentId=rQrsq~rHdPAKur2ZqpyHUA MATLAB API for AI Engine Graphs - MATLAB API for AI Engine Graphs - 2023.2 English - UG1393 Here is the list of AI Engine specific APIs and their usage in integrating the traffic generators. With the MATLAB API you can create the traffic generator... api for aimatlabenginegraphsenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Profile-Summary?contentId=t8czUG6fYQknYJAwdy79Kw Profile Summary - Profile Summary - 2023.2 English - UG1393 The xrt.run_summary file can be loaded into Vitis Analyzer and an example of the results is shown in the picture. The application run summary is presented... profile summaryenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/xclbin-Information?contentId=fDUstpamEgq_J~gGHMaPRg xclbin Information - xclbin Information - 2021.2 English - UG1393 Generated by: v++ (2020.1) on Mon Apr 13 20:19:40 MDT 2020 Version: 2.6.436 Kernels: CopyKernel Signature: Content: Bitstream UUID (xclbin):... informationenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/profile-Options?contentId=1F6PueTlrM4nWoSMz764Aw --profile Options - --profile Options - 2023.1 English - UG1393 As discussed in Enabling Profiling in Your Application, there are a number of --profile options that let you enable profiling of the application and kernel... profile optionsenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/SW-Controllable-Kernels?contentId=0pc2~NwtVViuBqacQATDaA SW-Controllable Kernels - SW-Controllable Kernels - 2023.2 English - UG1393 Software controllable kernels expose a programmable register interface, allowing a host software application to interact with kernels through register reads... swcontrollablekernelsenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Adding-C-Models-to-RTL-Kernels?contentId=76HLsuwtXvfmUor7UMLzhA Adding C-Models to RTL Kernels - Adding C-Models to RTL Kernels - 2021.2 English - UG1393 RTL kernels support the hardware emulation build, and the hardware build described in Build Targets, but an RTL kernel in its native form does not support... addingcmodelsrtlkernels https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Sub-Buffers?contentId=eKC9jI0YmyFG8V5PJXhoUw Sub-Buffers - Sub-Buffers - 2023.2 English - UG1393 Though not very common, using sub-buffers can be very useful in specific situations. The following sections discuss the scenarios where using sub-buffers can... subbuffersenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/VPP_ACC-Class-API?contentId=SJTJEEaRRVk_35MWIBY_bQ VPP_ACC Class API - VPP_ACC Class API - 2023.2 English - UG1393 You can define a hardware accelerator derived from the VPP_ACC base class, and build the hardware and software interface with VSC. This section describes the... vppaccclassapienglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Measure-Running-Time?contentId=9KdgVanYtu8E5XPdTVCDkQ Measure Running Time - Measure Running Time - 2022.1 English - UG1393 Measuring running time is a standard practice in software development. This can be done using common software profiling tools such as gprof, or by... running timemeasureenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/RTL-Kernel-Development-Flow?contentId=8jfZOm~vPCoYrI~_oN7HsA RTL Kernel Development Flow - RTL Kernel Development Flow - 2022.1 English - UG1393 This section explains the process of creating RTL kernels using the Package IP feature inside the Vivado Design Suite. The Package IP command provides a... kernel developmentrtlflowenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Accelerator-Execution-Models?contentId=mPQyeQ1WCv73aOMskLDTLQ Accelerator Execution Models - Accelerator Execution Models - 2022.2 English - UG1393 The following sections describe various styles of accelerator execution models. Each one is uniquely defines a system architecture that may used for an... execution modelsacceleratorenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Creating-Multiple-Compute-Units?contentId=jAmoD7eKI9wIabu2zw2D3g Creating Multiple Compute Units - Creating Multiple Compute Units - 2022.2 English - UG1393 When building the .xclbin file you can specify the number of kernel instances, or compute units (CU) to implement into the hardware by using the... compute unitscreatingmultipleenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Executing-Commands-on-the-FPGA Executing Commands on the FPGA - Executing Commands on the FPGA - 2023.2 English - UG1393 Once the OpenCL environment is initialized, the host application is ready to issue commands to the device and interact with the kernels. These commands... executing commandson thefpgaenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/syn.directive.loop_tripcount?contentId=UFlrxKaQBbcUMxNPUC1iBg syn.directive.loop_tripcount - syn.directive.loop_tripcount - 2023.2 English - UG1393 Description The loop tripcount is the total number of iterations performed by a loop. Vitis HLS reports the total latency of each loop (the number of cycles to... syndirectiveloopenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Measure-Running-Time?contentId=J6xUkMP1BAeQ4LcUk~PQQQ Measure Running Time - Measure Running Time - 2022.2 English - UG1393 Measuring running time is a standard practice in software development. This can be done using common software profiling tools such as gprof, or by... running timemeasureenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Using-the-RTL-Kernel-Wizard?contentId=dEaQj7I~q~4_h6xuaxdlMw Using the RTL Kernel Wizard - Using the RTL Kernel Wizard - 2022.2 English - UG1393 The RTL Kernel wizard is organized into multiple pages that break down the process of defining an RTL kernel. The pages of the wizard include: General Settings... usingrtlkernelwizardenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Compile-Options?contentId=TdjmKx5szdQb_GSnY3brvg Compile Options - Compile Options - 2023.2 English - UG1393 The syn.compile commands specify the default behavior for compilation of the HLS component. syn.compile.design_size_max_warning Specifies the design size that... compileoptionsenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/scan-xbmgmt?contentId=pQMnoYAkhr8Geef~qqyrWQ scan (xbmgmt) - scan (xbmgmt) - 2021.2 English - UG1393 Important: This option cannot be used with embedded processor platforms. The xbmgmt scan command returns a list of all the detected management PCIe functions.... scanenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Getting-Started-with-Vitis?contentId=FhPLXgGWvxUQbGxr8pfOmQ Getting Started with Vitis - Getting Started with Vitis - 2023.2 English - UG1393 This section contains the following chapters: Navigating Content by Design Process Vitis Software Platform Release Notes Installation getting started withvitisenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/A-Sample-Application?contentId=rln0Dh14fSv1oUGJndHzBA A Sample Application - A Sample Application - 2023.2 English - UG1393 This section provides a snapshot of the evolution of a program written for CPU into an application written for FPGA-based acceleration. This section is... a sampleapplicationenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Eliminate-I/O-Contentions?contentId=LHZ5q1MlCRkUMJjKlE3NDA Eliminate I/O Contentions - Eliminate I/O Contentions - 2022.1 English - UG1393 I/O contentions appear when a given I/O port of internal memory resources must be accessed more than once per loop iteration. A loop cannot be pipelined with... eliminatecontentionsenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Simulator-Support Simulator Support - Simulator Support - 2022.2 English - UG1393 The Vitis tool uses the Vivado logic simulator (xsim) as the default simulator for all platforms, including Alveo Data Center accelerator cards, and Versal and... simulator supportenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Developing-Applications Developing Applications - Developing Applications - 2023.2 English - UG1393 This section contains the following chapters: Programming Model describes the elements of the Vitis development environment Writing the Software Application... developing applicationsenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Interface-Information Interface Information - Interface Information - 2021.2 English - UG1393 The following shows the reported PCIe interface information. Interface Name: PCIe Interface Type: gen3x16 PCIe Vendor Id: 0x10EE PCIe Device Id: 0x5000 PCIe... interfaceinformationenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Revision-History?contentId=ajfeHnCyV53xirfJPeAukg Revision History - Revision History - 2022.2 English - UG1393 Getting Started with Vitis Revision History The following table shows the revision history for Getting Started with Vitis. Section Revision Summary 12/7/2022... revision historyenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Keep-the-Device-Kernels-Utilized?contentId=ax3zr4kBnXVMHad6aElLLA Keep the Device Kernels Utilized - Keep the Device Kernels Utilized - 2023.2 English - UG1393 Kernels might be present in the device, but they will only run when the application requests them. To maximize performance, engineer the application so that it... the devicekeepkernelsutilizedenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/General-Purpose-Python-API?contentId=HM52S3hrJqnv63p~mqg_vQ General Purpose Python API - General Purpose Python API - 2023.2 English - UG1393 Here is the list of general purpose APIs that can be used with custom user-defined datatypes. With these API you can send and receive data in the form of... general purposepython apienglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Platform Platform - Platform - 2021.2 English - UG1393 Upon initialization, the host application needs to identify a platform composed of one or more Xilinx devices. The following code fragment shows a common... platformenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Profiling-of-C-Code?contentId=oKG3GpR3wybfEFNpQI6Mdg Profiling of C Code - Profiling of C Code - 2022.1 English - UG1393 For C code the provided functions are: xrtURStart() This function establishes the start time of a measured range of activity with the specified ID. The... c codeprofilingenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Generate-XSA-file?contentId=1BP92MSXHrDAoBdc11mT_A Generate XSA file - Generate XSA file - 2023.1 English - UG1393 Leverage CED example design to create hardware platform and export XSA file. Add hardware interface based on fixed platform and export XSA file. generatexsafileenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/CU-Cluster-and-Multi-Card-Support?contentId=2MFXDeY3~XEbAjiVaSNwLA CU Cluster and Multi-Card Support - CU Cluster and Multi-Card Support - 2022.1 English - UG1393 If a host machine has only one accelerator card installed, VSC will try to use that card. There will be a fatal error if the card does not match the platform... multi cardcuclustersupportenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Vitis-Hardware-Function-Settings?contentId=~3nNfIawqIqCQiRunRLnag Vitis Hardware Function Settings - Vitis Hardware Function Settings - 2021.2 English - UG1393 To edit the settings for the hardware functions, expand the build target for the kernels project in the Assistant view, select the hardware function, and click... vitishardwarefunctionsettingsenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Creating-an-Archive-File?contentId=nTiEENq140OFzq7aCWoNcg Creating an Archive File - Creating an Archive File - 2022.1 English - UG1393 At times while developing your project, you might introduce changes in your host or kernel code that completely alters the contents or quality of the various... an archivecreatingfileenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Eliminate-I/O-Contentions Eliminate I/O Contentions - Eliminate I/O Contentions - 2022.2 English - UG1393 I/O contentions appear when a given I/O port of internal memory resources must be accessed more than once per loop iteration. A loop cannot be pipelined with... eliminatecontentionsenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/PROFILE_PORT-Examples?contentId=EJAtj6MMYwFXNfrkXN2mkQ PROFILE_PORT Examples - PROFILE_PORT Examples - 2022.2 English - UG1393 To enable profiling for all ports of all kernels: PROFILE_PORT("all"); To enable profiling for all ports of hls_kernel function on compute unit 0 and 2:... profileportexamplesenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Scalars Scalars - Scalars - 2023.1 English - UG1393 Scalar arguments are used to pass control type information to the kernels. Scalar arguments cannot be read back from the host. For each argument that is... scalarsenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/API/Pseudo-Code API/Pseudo Code - API/Pseudo Code - 2022.1 English - UG1393 For API/pseudo code, a single instance of AXI4 memory map transaction is used for the complete transaction. This is in line with how payload is used in the... pseudo codeapienglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/Diff-Two-Text-Files Diff Two Text Files - Diff Two Text Files - 2020.2 English - UG1393 The Vitis analyzer lets you compare two reports of the same type. This opens a report window similar to the one shown below. Figure 1. Compare Text Files The... text filesdifftwoenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/HLS-Synthesis-Report?contentId=N1KE5BggfQarFCOe0w4Rjw HLS Synthesis Report - HLS Synthesis Report - 2023.1 English - UG1393 The HLS report provides details about the high-level synthesis (HLS) process of a user kernel and is generated during the compilation process for hardware... synthesis reporthlsenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Design-Capture-and-Modeling Design Capture and Modeling - Design Capture and Modeling - 2023.1 English - UG1393 The previous section described the organization, software interfaces, and hardware compiled by VSC from a unified C++ model. The following is a quick summary... designcapturemodelingenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Vitis-IDE-Guidance-View?contentId=qOIFxI0UdHapXPR7DxVzDg Vitis IDE Guidance View - Vitis IDE Guidance View - 2022.1 English - UG1393 After building or running a specific build configuration, the Guidance tab of the Console view displays a list of errors, warnings, and suggestions related to... vitisideguidanceviewenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Vitis-Build-Configuration-Settings?contentId=gce8vboycCjTfWYO8P1tmg Vitis Build Configuration Settings - Vitis Build Configuration Settings - 2023.1 English - UG1393 To edit the settings for any of the build configurations under a project, select the build configuration in the Assistant view and click the Settings button (... build configurationvitissettingsenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Measure-Running-Time?contentId=SGKxqWxRWll62JxCFTRnoQ Measure Running Time - Measure Running Time - 2023.2 English - UG1393 Measuring running time is a standard practice in software development. This can be done using common software profiling tools such as gprof, or by... running timemeasureenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/SW-Controllable-Kernels SW-Controllable Kernels - SW-Controllable Kernels - 2021.2 English - UG1393 Software controllable kernels expose a programmable register interface, allowing a host software application to interact with kernels through register reads... swcontrollablekernelsenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Data-Driven-Kernels?contentId=Dk5q~iK3fUAu5uK63LI60A Data Driven Kernels - Data Driven Kernels - 2023.2 English - UG1393 These kernels are present in the device but are not directly managed by the software application, instead triggered by the arrival of data at the interface.... data drivenkernelsenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/HLS-Report HLS Report - HLS Report - 2022.2 English - UG1393 The HLS report provides details about the high-level synthesis (HLS) process of a user kernel and is generated during the compilation process for hardware... hlsreportenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/Quality-of-Results-Considerations Quality of Results Considerations - Quality of Results Considerations - 2020.2 English - UG1393 The following recommendations help improve results for timing and area: Pipeline all reset inputs and internally distribute resets avoiding high fanout nets.... qualityresultsconsiderationsenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Continuous-Trace-Capture?contentId=6rGqUmiuN~t_A2J0lmvRBQ Continuous Trace Capture - Continuous Trace Capture - 2021.2 English - UG1393 The Vitis tool supports recording continuous trace data while the application is running. The application can run for a very long time thus leading to the... continuoustracecaptureenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/Step-4-Improve-Loop-Latencies?contentId=OW8UxNYpWz3x8LXO~~WQLA Step 4: Improve Loop Latencies - Step 4: Improve Loop Latencies - 2020.2 English - UG1393 After identifying loops latencies that exceed their target, the first optimization to consider is loop unrolling. stepimprovelooplatenciesenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Getting-Started-with-Vitis?contentId=57Qzmxv263dW8cmrZklfUg Getting Started with Vitis - Getting Started with Vitis - 2022.2 English - UG1393 getting started withvitisenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Controlling-Report-Generation?contentId=ETpqUN4JuflSzO1oY6F8lg Controlling Report Generation - Controlling Report Generation - 2022.2 English - UG1393 The v++ -R option (or --report_level) controls the level of information to report during compilation or linking for hardware emulation and system targets.... report generationcontrollingenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Compiling-and-Linking-for-x86?contentId=WRyZUEheGNQm~2JwLWFwSw Compiling and Linking for x86 - Compiling and Linking for x86 - 2022.1 English - UG1393 Tip: Set up the command shell or window as described in Setting Up the Vitis Environment prior to running the tools. Each source file of the host application... compilinglinkingenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Import-a-Vitis-Project?contentId=CYRjCUHni74c_bQeZVzaRQ Import a Vitis Project - Import a Vitis Project - 2022.2 English - UG1393 importvitisprojectenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Event-Synchronization?contentId=q2fN3HTYQ8_TNEuURmKfrQ Event Synchronization - Event Synchronization - 2023.1 English - UG1393 All OpenCL enqueue-based API calls are asynchronous. These commands will return immediately after the command is enqueued in the command queue. To pause the... eventsynchronizationenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/RTL-Kernel-XML-File?contentId=MJeNzIDLMiSoKH8uIXPKnw RTL Kernel XML File - RTL Kernel XML File - 2022.2 English - UG1393 Tip: The package_xo command will create a kernel.xml file from the component.xml of a packaged IP, so you do not need to manually provide one, or generate one... xml filertlkernelenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Command-to-Clear-the-Session?contentId=R3gSTh5JewpUrqTlLGb_lg Command to Clear the Session - Command to Clear the Session - 2023.2 English - UG1393 The following command is used to clear the session: clear to clearthe sessioncommandenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Timeline-Trace?contentId=5xtFwp_EthpEECn71CiC1g Timeline Trace - Timeline Trace - 2023.2 English - UG1393 Profiling also shows a timeline trace for various phases of run in the application layer, as shown in the picture. This is presented under the "SystemCompile"... timelinetraceenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/package-Options?contentId=cfPyu~E40d5dWDhNDILAPw --package Options - --package Options - 2022.2 English - UG1393 Introduction As described in Packaging the System, the v++ --package, or -p step, generates and packages the final product at the end of the v++ compile and... package optionsenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Timeline-Trace?contentId=O9TJxTnjuQdSNTwh8fBERA Timeline Trace - Timeline Trace - 2021.2 English - UG1393 The Timeline Trace collects and displays host and kernel events on a common timeline to help you understand and visualize the overall health and performance of... timelinetraceenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Terminology?contentId=QTA9FFmvEcjTN7ARsAgI9Q Terminology - Terminology - 2022.2 English - UG1393 PL or Programmable Logic The part of the FPGA that is made of fundamental programmable building blocks such as flip-flops registers, look-up-tables (LUTs),... terminologyenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/Kernel-Execution Kernel Execution - Kernel Execution - 2020.2 English - UG1393 Often the compute intensive task required by the host application can be defined inside a single kernel, and the kernel is executed only once to work on the... kernelexecutionenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Software-Emulation?contentId=J_TDfQgt9~0GkdoLf813Xg Software Emulation - Software Emulation - 2022.1 English - UG1393 VSC uses a single source C++ model which can be functionally validated fast. The software emulation target (-t sw_emu) must be specified during v++ compile... softwareemulationenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/Automated-Setup-for-Hardware-Debug Automated Setup for Hardware Debug - Automated Setup for Hardware Debug - 2020.2 English - UG1393 Set up your Vitis core development kit as described in Setting Up the Vitis Environment. Use the debug_hw script to launch the xvc_pcie and hw_server apps as... automatedsetuphardwaredebugenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Executing-Kernels-on-the-Device Executing Kernels on the Device - Executing Kernels on the Device - 2021.2 English - UG1393 The execution of a kernel is associated with a class called xrt::run that implements methods to start and wait for kernel execution. Most interaction with... on theexecutingkernelsdeviceenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/mem-write?contentId=5epjXck5PSJUzXca8U3rBQ mem --write - mem --write - 2020.2 English - UG1393 Important: This option cannot be used with embedded processor platforms. The mem --write command writes a defined pattern to a specified set of memory... memwriteenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Step-5-Improve-Loop-Throughput Step 5: Improve Loop Throughput - Step 5: Improve Loop Throughput - 2023.1 English - UG1393 If improving loop latency by reducing the trip count was not sufficient, look at ways to reduce the initiation interval (II). The loop II is the count of clock... stepimproveloopthroughputenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Kernel-Interface-Requirements?contentId=WWBNfbcmlmSlB6JLTwGvpw Kernel Interface Requirements - Kernel Interface Requirements - 2023.2 English - UG1393 To enable the Vitis compiler to connect kernels into the target platform, an RTL kernel must adhere to the requirements described in PL Kernel Properties. The... kernel interfacerequirementsenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Multiple-Compute-Units?contentId=eJvO6L4WhVRBr5wT~5LY3A Multiple Compute Units - Multiple Compute Units - 2022.1 English - UG1393 Depending on available resources on the target device, multiple compute units of the same kernel (or different kernels) can be created to run in parallel,... compute unitsmultipleenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Creating-the-XO?contentId=CTFst_L0_VeIaOVZgNLDsw Creating the XO - Creating the XO - 2023.2 English - UG1393 To generate XO file from the SystemC model, use the create_sc_xo command. This takes the SystemC kernel source file as input and creates IP that generates the... the xocreatingenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Memory-Configuration?contentId=bH5Ybuevrhzx3BnwJB3fjA Memory Configuration - Memory Configuration - 2022.2 English - UG1393 Name: bank0 Index: 0 Type: MEM_DDR4 Base Address: 0x0 Address Size: 0x400000000 Bank Used: No Name: bank1 Index: 1 Type: MEM_DDR4 Base Address: 0x400000000... memory configurationenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Platform-Types?contentId=ryzfo1uNemeFXOqGnHZ7kQ Platform Types - Platform Types - 2022.2 English - UG1393 The Vitis target platforms can be customized with unique hardware and software components. There are two general types of platforms: fixed platforms and... platformtypesenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/syn.directive.array_reshape?contentId=QQZcSg64y2aLPkclu4fZGQ syn.directive.array_reshape - syn.directive.array_reshape - 2023.2 English - UG1393 Description Important: syn.directive.array_partition and syn.directive.array_reshape are not supported for M_AXI Interfaces on the top-level function. Instead... syndirectivearrayreshapeenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Using-the-Standalone-Debug-Flow?contentId=jYl2WUhKyImEUz3Qy81H~A Using the Standalone Debug Flow - Using the Standalone Debug Flow - 2022.1 English - UG1393 The Vitis IDE lets you open the debug tool for projects that have been built using the command line flow. Launching Standalone Debug for Embedded Platforms The... usingstandalonedebugflowenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Command-to-Display-History?contentId=jOJiA6my493siHqsACti~A Command to Display History - Command to Display History - 2023.2 English - UG1393 Use history command to print recent input history. Vitis [1]: ls vadd/ logs/ Vitis [2]: history ls history By default, input history is printed without the... commanddisplayhistoryenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/opencl_unroll_hint opencl_unroll_hint - opencl_unroll_hint - 2020.2 English - UG1393 Description Important: This is a compiler hint which the compiler can ignore. Loop unrolling is an optimization technique available in the Vitis compiler. The... openclhintenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Packaging-Images?contentId=_2gCBZ8z4oCQnexYUCyECA Packaging Images - Packaging Images - 2023.2 English - UG1393 The Vitis compiler (v++) has three stages: -c or --compile to compile acceleration kernels -l or --link to link acceleration kernels with platform logic. -p or... packagingimagesenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Buffer-Memory-Segmentation?contentId=HodN8frXug7zzlogiz2ssw Buffer Memory Segmentation - Buffer Memory Segmentation - 2023.2 English - UG1393 Allocation and deallocation of memory buffers can lead to memory segmentation in the DDR controllers. This might result in sub-optimal performance of compute... buffermemorysegmentationenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/emconfigutil-Settings emconfigutil Settings - emconfigutil Settings - 2022.1 English - UG1393 Select the emconfigutil command options in the GCC Compiler and Linker Settings dialog box, which you can open from the Build Configuration Settings dialog box... settingsenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Building-Hardware?contentId=xW76sevv5mPOS5hG5i5Rzw Building Hardware - Building Hardware - 2023.1 English - UG1393 This chapter will describe the key aspects of building the accelerator hardware using VSC. The first section describes the user-defined C++ accelerator class... building hardwareenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Vitis-Application-Development-Flow?contentId=hC6iChvu6LjJ~eOZC3pxfA Vitis Application Development Flow - Vitis Application Development Flow - 2022.1 English - UG1393 In this section, you will learn about the Vitis application development flow first and then review a methodology for re-architecting a CPU application for... application developmentvitisflowenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/advanced-Options?contentId=y5UF9RQBp4yjDiQ8mCp~zA --advanced Options - --advanced Options - 2021.2 English - UG1393 The --advanced.param and --advanced.prop options specify parameters and properties for use by the v++ command. When compiling or linking, these options offer... advanced optionsenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Adding-Hardware-Interfaces?contentId=BO9JEyAn3HjrNM0Xg~FrwQ Adding Hardware Interfaces - Adding Hardware Interfaces - 2022.2 English - UG1393 The following table shows the possible Vitis inputs and the minimal requirements for an acceleration embedded platform. Table 1. Available Interfaces for Vitis... hardware interfacesaddingenglish https://docs.amd.com/r/2020.2-English/ug1393-vitis-application-acceleration/vitis-debug-Command-Line vitis -debug Command Line - vitis -debug Command Line - 2020.2 English - UG1393 Command Line Usage The Vitis software platform standalone debug feature lets you launch the Vitis IDE for debugging an existing command line project. In the... command linevitisdebugenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Memory-Mapped-Interfaces?contentId=ehy2aStnP8rrmFwb~MW5PA Memory Mapped Interfaces - Memory Mapped Interfaces - 2021.2 English - UG1393 Memory mapped interfaces are inferred from pointer parameters. They allow kernels to read and write data in global memory, which is the memory that is shared... memorymappedinterfacesenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/syn.directive.bind_storage?contentId=8wdt64_kpavJd6FmctKmxg syn.directive.bind_storage - syn.directive.bind_storage - 2023.2 English - UG1393 Description Vitis HLS assigns arrays in the code using specific memory resources (or types). The tool automatically determines the resource to use.... syndirectivebindstorageenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Enabling-Low-Overhead-Profiling?contentId=7UrguTlzzjrKZuw39EfyDA Enabling Low Overhead Profiling - Enabling Low Overhead Profiling - 2022.1 English - UG1393 The Vitis software platform supports low overhead profiling that provides minimal information with little effect on execution time. Using this option during... enablinglowoverheadprofilingenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/package_xo-Command?contentId=WwcUwSg9T40YjvxAT_OfEQ package_xo Command - package_xo Command - 2022.1 English - UG1393 packagexocommandenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/Utilities-for-Hardware-Debugging?contentId=c41nScO2LkPsbdnv0u3UgA Utilities for Hardware Debugging - Utilities for Hardware Debugging - 2023.2 English - UG1393 In some cases, the normal Vitis IDE and command line debug features are limited in their ability to isolate an issue. This is especially true when the software... utilitieshardwaredebuggingenglish https://docs.amd.com/r/2022.1-English/ug1393-vitis-application-acceleration/Zynq-7000-PS-Arguments-for-QEMU Zynq-7000 PS Arguments for QEMU - Zynq-7000 PS Arguments for QEMU - 2022.1 English - UG1393 Zynq-7000 PS(a9) is emulated by qemu-system-aarch64 QEMU binary. Most common command line switches of PS are captured in qemu_args.txt. Table 1. Zynq-7000... zynqpsargumentsqemuenglish https://docs.amd.com/r/2023.2-English/ug1393-vitis-application-acceleration/syn.directive.occurrence?contentId=8y1~B_Fot3Da0qhD_0JQqg syn.directive.occurrence - syn.directive.occurrence - 2023.2 English - UG1393 Description When pipelining functions or loops, the OCCURRENCE pragma or directive specifies that the code in a pipelined function call within the pipelined... syndirectiveoccurrenceenglish https://docs.amd.com/r/2021.2-English/ug1393-vitis-application-acceleration/Profiling-of-C-Code?contentId=ZEXsl6hAmni5YZk5TuaO9w Profiling of C Code - Profiling of C Code - 2021.2 English - UG1393 For C code the provided functions are: xrtURStart() This function establishes the start time of a measured range of activity with the specified ID. The... c codeprofilingenglish https://docs.amd.com/r/2023.1-English/ug1393-vitis-application-acceleration/Latency-Information?contentId=3WKnVR4GU83QjnPqC5gsGQ Latency Information - Latency Information - 2023.1 English - UG1393 The latency information presents the execution profile of each CU in the binary container. When analyzing this data, it is important to recognize that all... latencyinformationenglish https://docs.amd.com/r/2022.2-English/ug1393-vitis-application-acceleration/Run-Baremetal-Software-Emulation?contentId=4o64cm2SS~rfwKsK7TKEcA Run Baremetal Software Emulation - Run Baremetal Software Emulation - 2022.2 English - UG1393 To step back from creating acceleration applications for platform verification, you can run emulation of baremetal host applications to test the hardware... runbaremetalsoftwareemulationenglish