nvrtc_module_cache Derived Type

type, private :: nvrtc_module_cache

Cache for nvrtc modules

This type is used internally by the module and is not exposed to the user It maintains a list of compiled nvrtc modules and provides methods to add new modules and retrieve existing ones

The cache automatically grows as needed


Inherits

type~~nvrtc_module_cache~~InheritsGraph type~nvrtc_module_cache nvrtc_module_cache type~nvrtc_module nvrtc_module type~nvrtc_module_cache->type~nvrtc_module cache type~cumodule CUmodule type~nvrtc_module->type~cumodule cumod type~kernel_config kernel_config type~nvrtc_module->type~kernel_config configs type~kernel_type_t kernel_type_t type~nvrtc_module->type~kernel_type_t kernel_type type~nvrtcprogram nvrtcProgram type~nvrtc_module->type~nvrtcprogram prog c_ptr c_ptr type~cumodule->c_ptr ptr type~nvrtcprogram->c_ptr cptr

Components

Type Visibility Attributes Name Initial
logical, private :: is_created = .false.

Flag that indicates if cache is created

type(nvrtc_module), private, allocatable :: cache(:)

Array of cached modules

integer(kind=int32), private :: size

Number of entries in cache


Type-Bound Procedures

procedure, private, pass(self) :: create

Creates cache

  • private subroutine create(self)

    Creates cache

    Arguments

    Type IntentOptional Attributes Name
    class(nvrtc_module_cache), intent(inout) :: self

    Cache instance

procedure, private, pass(self) :: add

Adds new entry to cache

  • private subroutine add(self, m)

    Adds new entry to cache

    Arguments

    Type IntentOptional Attributes Name
    class(nvrtc_module_cache), intent(inout) :: self

    Cache instance

    type(nvrtc_module), intent(in) :: m

    Module to add