Classification
Revision
Public
PA1
Document ID
Print date
19-2241
2019-05-02
placing
GET_SAMPLE_CH_A
macro in function
cast_and_validate_kernel
located in
OCT_func.cu
. Re-
member to rebuild example (
make
) for the changes to take effect.
5.2.3
Known Bugs
1.
Resizing of the window causes a high number re-scaling events leading to a temporary slowdown
of the GPU, this can be avoided by freezing the frame (
f
) before resizing.
2.
Transfer speed is calculated from buffer size, the size of skipped samples because of invalid lines
is not subtracted, thus the figure is only 100% accurate when all lines are valid.
5.3
AMD Example
The example for AMD GPUs is written using DirectGMA with OpenCL. DirectGMA works by setting up
a bus writable buffers with
markers
in GPU memory. Data is written into a buffer and when it is full an
iterator is written to the associated marker. A wait command is added to the OpenCL queue which blocks
the queue until a marker write is detected. At that time a kernel enqueued after the marker wait can run.
This sequence is repeated in an alternating pattern for two buffers. The enqueued operations copy the
content of the data and
data_valid
buffers to another set of buffers and reinitializes data valid buffer.
5.3.1
Running the example
1.
Make sure the ADQ7 device driver is installed.
2.
Make sure AMD driver is installed and directGMA activated
3.
Make sure Visual studio 2017 or never is installed
4.
Install OCL-SDK:
5.
Go to directory examples/amd/example
6.
Open visual studio project file and build release x64
7.
Run example:
ADQ7_DirectGMA_example
8.
For more details see included README.
5.3.2
Adjusting Example Settings
The file
gpu_streaming_defines.h
contains macros for settings and debug printouts. Remember to
rebuild example for the changes to take effect.
References
[1] Teledyne Signal Processing Devices Sweden AB,
14-1351 ADQAPI Reference Guide
. Technical
Manual.
ADQ7 GPU Peer-To-Peer – User Guide
Page 11 of 11