The Tutorial and API Reference of VEDA  3.3.0
Introduction

VEDA is a parallel computing platform and programming model that makes using a VE for general purpose computing simple and elegant. The VEDA platform is designed to work with programming languages such as C, C++, and Fortran. This accessibility makes it easier for specialists in parallel programming to use GPU resources,

Using VEDA, a programmer can execute code on VE and can control the execution from VH main program.

VEDA (VE Driver API) and VERA (VE Runtime API) are a CUDA Driver and Runtime API-like APIs for hybrid programming. It is based on AVEO. Most of the functionality is identical to the CUDA Driver API and CUDA Runtime API.

This document describes public APIs for VEDA. The page "Modules" shows a list of VEDA API functions. The page "Examples" shows a list of all example. The page "VEDA vs CUDA" shows the differences and similarities between VEDA and CUDA, also shows some unique features of VEDA.

Author
NEC Laboratories Europe
NEC Corporation
Revision History
Revision, Date, Updates/Remarks
Rev.7, Feb 2024,
This revision covers veoffload-veda-3.2.0 or later.
The meaning of the second argument in vedaDeviceGetTemp() has been changed from "core index" to "location index" to support multiple generations of vector engines. Updated the return values of vedaDeviceGetTemp() to add VEDA_ERROR_INVALID_VALUE.
Rev.6, Mar 2023,
This revision covers veoffload-veda-3.0.1 or later.
Update package name and lib.
Rev.5, Jan 2023,
This revision covers veoffload-veda-2.14.0 or later.
Added support of below new VEDA APIs
vedaHMemsetD2D128Async(),vedaHMemsetD2D128(),vedaHMemsetD2D16Async(), vedaHMemsetD2D16(),vedaHMemsetD2D32Async(),vedaHMemsetD2D32(), vedaHMemsetD2D64Async(),vedaHMemsetD2D64(),vedaHMemsetD2D8Async(), vedaHMemsetD2D8()
Enabled support for vedaMemsetD2D* set of APIs after Bugfix.
Rev.4, Nov 2022,
This revision covers veoffload-veda-2.13.0 or later.
Added support of below new VEDA APIs
vedaLaunchHostFuncEx(),vedaMemSwap(),vedaMemSwapAsync(), vedaLaunchKernelEx_compat(),vedaMemsetD128(),vedaMemsetD128Async(), vedaMemAllocOverrideOnce()
Added support of below new VEDA HMEM APIs vedaHMemAlloc(), vedaHMemcpyDtoXAsync(), vedaHMemcpyDtoX(), vedaHMemcpy(), vedaHMemcpyXtoDAsync(), vedaHMemcpyXtoD(), vedaHMemPtr(), vedaHMemsetD128Async(), vedaHMemsetD128(), vedaHMemsetD16(), vedaHMemsetD32Async(), vedaHMemsetD32(), vedaHMemsetD64Async(), vedaHMemsetD64(), vedaHMemsetD8(), vedaHMemsetD16Async(), vedaHMemFree(), vedaHMemsetD8Async()
Replaced "bool checkResult" with "int64_t* result" in vedaLaunchKernelEx() to receive return value of kernel.
Replaced "const void *value" to "const VEDAhmemptr value" in vedaArgsSetHMEM().
Modified VEDAdeviceptr to prevent segmentation fault.
Below APIs are removed
vedaMemGetRawPointer(), vedaMemGetHMEMPointer(), vedaMemHMEM(), vedaMemHMEMSize()
Disabled support for vedaMemsetD2D* set of APIs.
Added support of below new VERA APIs
veraLaunchHostFuncEx()
Program linking libveda.so needs to be re-compiled when veoffload-veda is updated to v2.13 or later
Rev.3, July 2022,
This revision covers veoffload-veda-2.11.1 or later.
Fixed build error, loading library error and missing invocation of vedaArgsDestroy() in example programs
Rev.2, Mar. 2022,
This revision covers veoffload-veda-2.11.1 or later.
Updated VEDA API similar to CUDA.
Difference points between VEDA and CUDA
Unique features of VEDA.
Updated environment variable usage/description.
Suppressed extra error messages.
Rev.1, Dec. 2021,
This revision covers veoffload-veda-2.10.0 or later.
First release.