ILGPU  0.9.0
ILGPU Namespace Reference

Namespaces

namespace  AtomicOperations
 
namespace  Backends
 
namespace  Frontend
 
namespace  IR
 
namespace  Resources
 
namespace  Runtime
 
namespace  Util
 

Classes

struct  ArrayView
 Represents a generic view to a contiguous chunk of memory. More...
 
struct  ArrayView2D
 
struct  ArrayView3D
 
class  ArrayViewExtensions
 Array view extension methods
 
class  Atomic
 Contains atomic functions that are supported on devices.
 
class  Context
 Represents the main ILGPU context. More...
 
class  ContextCodeGenerationPhase
 A single code generation phase. More...
 
class  ContextExtension
 Represents an abstract context extensions that can store additional data. More...
 
class  ContextFlagsExtensions
 Helper methods for the ContextFlags enumeration.
 
class  Grid
 Contains general grid functions.
 
class  Group
 Contains general grid functions.
 
struct  Half
 A half precision floating point value with 16 bit precision. More...
 
class  HalfExtensions
 
interface  IArrayView
 Represents an abstract array view. More...
 
interface  ICache
 Represents an object that contains internal caches. More...
 
interface  IGenericIndex
 Represents a generic index type. More...
 
interface  IIndex
 Represents a basic index type. More...
 
interface  IIntIndex
 Represents a 32-bit index. More...
 
interface  IIntrinsicIndex
 Represents an intrinsic index type. More...
 
interface  ILinearizableIndex
 An abstract index that can be converted to or reconstructed from a linear value. More...
 
interface  ILongIndex
 A long integer register. More...
 
struct  Index1
 Represents a 1D index. More...
 
struct  Index2
 Represents a 2D index. More...
 
struct  Index3
 Represents a 3D index. More...
 
class  IndexTypeAttribute
 An internal attribute to specify the index type of a custom structure. More...
 
class  IndexTypeExtensions
 Contains utility functions for handling index types.
 
class  Interop
 Contains general interop functions.
 
class  IntrinsicMath
 Represents basic intrinsic math helpers for general math operations that are supported on the CPU and the GPU. More...
 
class  InvalidKernelOperationException
 An exception that is thrown when an ILGPU kernel method is called from the managed CPU side instead of a kernel. More...
 
struct  KernelConfig
 A single kernel configuration for an explicitly grouped kernel. More...
 
struct  LongIndex1
 Represents a 1D index. More...
 
struct  LongIndex2
 Represents a 2D index. More...
 
struct  LongIndex3
 Represents a 3D index. More...
 
class  MemoryFence
 Contains memory-fence functions.
 
struct  RuntimeKernelConfig
 Represents a runtime kernel configuration that is used internally to specify launch dimensions and shared memory settings. More...
 
struct  RuntimeSharedMemoryConfig
 A shared memory configuration that stores both static and dynamic information about shared memory. More...
 
class  SharedMemory
 Contains methods to allocate and managed shared memory.
 
struct  SharedMemoryConfig
 Represents a dynamic shared memory configuration for kernels. More...
 
struct  VariableView
 Represents a general view to a variable. More...
 
class  Warp
 Contains warp-wide functions.
 

Enumerations

enum  BasicValueType {
  BasicValueType.None, BasicValueType.Int1, BasicValueType.Int8, BasicValueType.Int16,
  BasicValueType.Int32, BasicValueType.Int64, BasicValueType.Float16, BasicValueType.Float32,
  BasicValueType.Float64
}
 Represents a basic value type. More...
 
enum  ArithmeticBasicValueType {
  ArithmeticBasicValueType.None, ArithmeticBasicValueType.UInt1, ArithmeticBasicValueType.Int8, ArithmeticBasicValueType.Int16,
  ArithmeticBasicValueType.Int32, ArithmeticBasicValueType.Int64, ArithmeticBasicValueType.Float16, ArithmeticBasicValueType.Float32,
  ArithmeticBasicValueType.Float64, ArithmeticBasicValueType.UInt8, ArithmeticBasicValueType.UInt16, ArithmeticBasicValueType.UInt32,
  ArithmeticBasicValueType.UInt64
}
 Represents an arithmetic basic value type. More...
 
enum  ContextFlags : int {
  ContextFlags.None = 0, ContextFlags.EnableDebugSymbols = 1 << 0, ContextFlags.EnableKernelDebugInformation = 1 << 1, ContextFlags.EnableInlineSourceAnnotations = 1 << 2,
  ContextFlags.EnableAssertions = 1 << 3, ContextFlags.EnableKernelStatistics = 1 << 4, ContextFlags.EnableVerifier = 1 << 5, ContextFlags.EnableParallelCodeGenerationInFrontend = 1 << 8,
  ContextFlags.InlineMutableStaticFieldValues = 1 << 9, ContextFlags.IgnoreStaticFieldStores = 1 << 10, ContextFlags.FastMath = 1 << 11, ContextFlags.Force32BitFloats = 1 << 12,
  ContextFlags.ForceSystemGC = 1 << 16, ContextFlags.SkipCPUCodeGeneration = 1 << 17, ContextFlags.AggressiveInlining = 1 << 18, ContextFlags.NoInlining = 1 << 19,
  ContextFlags.DisableConstantPropagation = 1 << 20, ContextFlags.DisableKernelCaching = 1 << 24, ContextFlags.DisableAutomaticBufferDisposal = 1 << 25, ContextFlags.DisableAutomaticKernelDisposal = 1 << 26,
  ContextFlags.DisableAcceleratorGC
}
 Represents flags for a Context. More...
 
enum  ClearCacheMode : int { ClearCacheMode.Default = 0, ClearCacheMode.Everything = 1 }
 Specifies which resources should be removed from the cache. More...
 
enum  IndexType {
  IndexType.None = 0, IndexType.Index1D = 1, IndexType.Index2D = 2, IndexType.Index3D = 3,
  IndexType.LongIndex1D = 4, IndexType.LongIndex2D = 5, IndexType.LongIndex3D = 6, IndexType.KernelConfig = 7
}
 Represents the type of index. More...
 

Enumeration Type Documentation

Represents an arithmetic basic value type.

Enumerator
None 

Represent a non-arithmetic value type.

UInt1 

Represents an 1-bit integer.

Int8 

Represents an 8-bit integer.

Int16 

Represents a 16-bit integer.

Int32 

Represents a 32-bit integer.

Int64 

Represents a 64-bit integer.

Float16 

Represents a 16-bit float.

Float32 

Represents a 32-bit float.

Float64 

Represents a 64-bit float.

UInt8 

Represents an 8-bit unsigned integer.

UInt16 

Represents a 16-bit unsigned integer.

UInt32 

Represents a 32-bit unsigned integer.

UInt64 

Represents a 64-bit unsigned integer.

enum ILGPU.BasicValueType
strong

Represents a basic value type.

Enumerator
None 

Represent a non-basic value type.

Int1 

Represents an 1-bit integer.

Int8 

Represents an 8-bit integer.

Int16 

Represents a 16-bit integer.

Int32 

Represents a 32-bit integer.

Int64 

Represents a 64-bit integer.

Float16 

Represents a 16-bit float.

Float32 

Represents a 32-bit float.

Float64 

Represents a 64-bit float.

enum ILGPU.ClearCacheMode : int
strong

Specifies which resources should be removed from the cache.

Enumerator
Default 

Removes all non-ILGPU objects form the caches.

Everything 

Removes everything from the caches.

enum ILGPU.ContextFlags : int
strong

Represents flags for a Context.

[ 0 - 7] = debugging settings [ 8 - 15] = code generation settings [16 - 23] = transformation settings [24 - 32] = accelerator settings

Enumerator
None 

Default flags.

EnableDebugSymbols 

Enables debug symbols (if available),

EnableKernelDebugInformation 

Enables debug information in kernels (if available).

EnableInlineSourceAnnotations 

Enables inline source-code annotations when generating kernels.

Note that this is only supported if debug information is activated.

EnableAssertions 

Enables assertions.

EnableKernelStatistics 

Enables detailed kernel statistics about all compiled kernel functions.

EnableVerifier 

Enables the internal IR verifier.

EnableParallelCodeGenerationInFrontend 

Enables parallel code generation in frontend. Note that this does not affect parallel transformations.

InlineMutableStaticFieldValues 

Loads from mutable static fields are rejected by default. However, their current values can be inlined during JIT compilation. Adding this flags causes values from mutable static fields to be inlined instead of rejected.

IgnoreStaticFieldStores 

Stores to static fields are rejected by default. Adding this flag causes stores to static fields to be silently ignored instead of rejected.

FastMath 

Represents fast math compilation flags.

Force32BitFloats 

Forces the use of 32bit floats instead of 64bit floats. This affects all math operations (like Math.Sqrt(double)) and all 64bit float conversions. This settings might improve performance dramatically but might cause precision loss.

ForceSystemGC 

Forces a .Net GC run after every context GC.

SkipCPUCodeGeneration 

Skips the internal IR code generation phase for CPU kernels (debug flag).

Caution: this avoids general kernel code-analysis and verification checks.

AggressiveInlining 

Represents an aggressive inlining policy. (all functions will be inlined).

NoInlining 

No functions will be inlined at all.

DisableConstantPropagation 

Disables the on-the-fly constant propagation functionality (e.g. for debugging purposes).

DisableKernelCaching 

Disables all kernel-loading caches.

However, IR nodes, type information and debug information will still be cached, since they are used for different kernel compilation operations. If you want to clear those caches as well, you will have to clear them manually using Context.ClearCache(ClearCacheMode).

DisableAutomaticBufferDisposal 

Disables automatic disposal of memory buffers in the scope of ILGPU GC threads. It should only be used by experienced users.

In theory, allocated memory buffers will be disposed automatically by the .Net GC. However, disposing accelerator objects before their associated memory buffers have been freed will end up in exceptions and sometimes driver crashes on different systems. If you disable automatic buffer disposal, you have to ensure that all accelerator child objects have been freed manually before disposing the associated accelerator object.

DisableAutomaticKernelDisposal 

Disables automatic disposal of kernels in the scope of ILGPU GC threads. This is dangerous as the 'default' kernel-loading methods do not return Runtime.Kernel instances that can be disposed manually. It should only be used by experienced users.

In theory, allocated accelerator kernels will be disposed automatically by the .Net GC. However, disposing accelerator objects before their associated kernels have been freed will end up in exceptions and sometimes driver crashes on different systems. If you disable automatic kernel disposal, you have to ensure that all accelerator child objects have been freed manually before disposing the associated accelerator object.

DisableAcceleratorGC 

Disables kernel caching and automatic disposal of memory buffers and kernels. It should only be used by experienced users.

enum ILGPU.IndexType
strong

Represents the type of index.

Enumerator
None 

Represents no compatible index type.

Index1D 

Represents a 1D index.

Index2D 

Represents a 2D index.

Index3D 

Represents a 3D index.

LongIndex1D 

Represents a 1D index.

LongIndex2D 

Represents a 2D index.

LongIndex3D 

Represents a 3D index.

KernelConfig 

Represents a generic kernel config.