LambLisp 01 Red Fox Alpha
From AI to Actuator
Loading...
Searching...
No Matches

Functions

__global__ void cudakernel_vectorAdd (const LL_float32 *A, const LL_float32 *B, LL_float32 *C, int n)
__global__ void kernel1 (LL_float32 *data, int n)
hipError_t launch_kernel1 (int nblocks, int thrPerBlk, int shared, hipStream_t stream, LL_float32 *data, int n)
__global__ void kernel2 (LL_float32 *data, int n)
void cudaDevicePtrDestroyer (Ptr_t p)
void cudaHostPtrDestroyer (Ptr_t p)
Sexpr_t mop3_cpp_vector_add (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaLaunch_kernel1 (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudakernel_vectorAdd (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaMalloc (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaMallocHost (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaFree (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaMemcpy (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaMemset (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
void cudaStreamDestroyer (Ptr_t p)
Sexpr_t mop3_cudaStreamCreate (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaStreamSynchronize (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaDeviceSynchronize (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaGetDeviceCount (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cudaGetDeviceProp (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t Hip_install_mop3 (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)

Detailed Description

LambLisp HIP / ROCm GPU builtins.

Function Documentation

◆ cudaDevicePtrDestroyer()

void cudaDevicePtrDestroyer ( Ptr_t p)

GC destructor for device memory.

◆ cudaHostPtrDestroyer()

void cudaHostPtrDestroyer ( Ptr_t p)

GC destructor for pinned host memory.

◆ mop3_cpp_vector_add()

Sexpr_t mop3_cpp_vector_add ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

CPU-side vector add: C[i] = A[i] + B[i] for i in [0,n). Args: (A B C n) – A, B, C are realvectors; n is element count. Available with or without CUDA; used in three-way correctness tests.

◆ mop3_cudaLaunch_kernel1()

Sexpr_t mop3_cudaLaunch_kernel1 ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Launch kernel1 (element *= 2) on a device buffer; args: (stream data [n]).

◆ mop3_cudakernel_vectorAdd()

Sexpr_t mop3_cudakernel_vectorAdd ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

GPU vector add C[i] = A[i]+B[i]; args: (A B C n) as device/pinned pointers or bytevectors.

◆ mop3_cudaMalloc()

Sexpr_t mop3_cudaMalloc ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Allocate n bytes of device memory; returns a T_CPP_HEAP object with hipFree destructor.

◆ mop3_cudaMallocHost()

Sexpr_t mop3_cudaMallocHost ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Allocate n bytes of page-locked host memory; returns a T_CPP_HEAP object with hipHostFree destructor.

◆ mop3_cudaFree()

Sexpr_t mop3_cudaFree ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Free one or more device memory objects returned by hipMalloc.

◆ mop3_cudaMemcpy()

Sexpr_t mop3_cudaMemcpy ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Combines hipMemcpy() and hipMemcpyAsync(). If the stream argument is provided then the asynchronous copy will be used. count is in bytes. dst and src may be device pointers (hipMalloc), pinned host pointers (hipHostMalloc), or bytevectors.

◆ mop3_cudaMemset()

Sexpr_t mop3_cudaMemset ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Fill count bytes of device memory with a byte value: (hipMemset ptr val count).

◆ mop3_cudaStreamCreate()

Sexpr_t mop3_cudaStreamCreate ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Create a CUDA stream; returns a T_CPP_HEAP object with hipStreamDestroy destructor.

◆ mop3_cudaStreamSynchronize()

Sexpr_t mop3_cudaStreamSynchronize ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Block until all operations in the given CUDA stream have completed.

◆ mop3_cudaDeviceSynchronize()

Sexpr_t mop3_cudaDeviceSynchronize ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Block until all CUDA work on the current device has completed.

◆ mop3_cudaGetDeviceCount()

Sexpr_t mop3_cudaGetDeviceCount ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Return the number of CUDA-capable devices available on the host.

◆ mop3_cudaGetDeviceProp()

Sexpr_t mop3_cudaGetDeviceProp ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Return an association list of device properties for the given device index (default 0).

◆ Hip_install_mop3()

Sexpr_t Hip_install_mop3 ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Installer: bind the HIP/ROCm GPU builtins into env_target (AMD-GPU counterpart of the CUDA bindings); host builds register safe no-ops.