Print date 19-2241 2019-05-02 1 Introduction This document describes how to perform peer-to-peer transfer from an ADQ7 digitizer to a GPU. 1.1 Definitions and Abbreviations Table lists the definitions and abbreviations used in this document and provides an explanation for each entry.
The resulting data buffer in GPU memory will always contain consistent data aligned in records and lines according to the trigger information received by the ADQ7, ready to be processed by the GPU. 3.2 Double Buffering and Kernel Scheduling The example program employs a double buffering scheme when transferring data to GPU.
Data is written from the digitizer directly to the GPU without going through the host CPU or host memory. This reduces requirement on the host system significantly while still utilizing the full transfer rate capability of the PCIe back plane. The ADQ7 supports up to eight PCIe generation 3.0 lanes. ADQ7 GPU P2P...
Page 6
PCIe standard. Therefore, make sure that there is a PCIe switch between the two endpoints or that the root complex supports peer-to-peer transfer. ADQ7 GPU Peer-To-Peer – User Guide www.teledyne-spdevices.com...
The input of marker addresses is vendor specific and described bellow, For general information see the ADQAPI reference guide [1]. 4.3.1 Nvidia Marker memory is allocated by the ADQAPI. The marker address fields can be left empty. ADQ7 GPU Peer-To-Peer – User Guide www.teledyne-spdevices.com Page 7 of 11...
The samples are written in int16_t format into buffers. In two-channel mode samples from channel A and B are interleaved. Macros in gpu_streaming_defines.h shows how to access a given sample in a ADQ7 GPU Peer-To-Peer – User Guide www.teledyne-spdevices.com Page 8 of 11...
5 Example Code The ADQ7 GPU P2P function is delivered with two examples, one for Nvidia GPU’s under Linux and another for AMD GPU’s under Windows. 5.1 Signal Connections The example code can collect data from one or two analog inputs using the A-trigger and optional B- trigger as described in Section 3.1.
5.2.1 Running the Example Make sure cuda toolkit including examples are installed Make sure your user is in the ‘adq’ group: groups Make sure the ADQ7 device driver is loaded: ls /dev/adq* Go to ADQ7_GPUDirect_example/source/gdrdrv Build kernel module for GPUDirect: make Load kernel module: sudo ./insmod.sh...
5.3.1 Running the example Make sure the ADQ7 device driver is installed. Make sure AMD driver is installed and directGMA activated Make sure Visual studio 2017 or never is installed...
Need help?
Do you have a question about the ADQ7 and is the answer not in the manual?
Questions and answers