Class: Cumo::CUDA::NVRTCProgram

Inherits:
Object
  • Object
show all
Defined in:
lib/cumo/cuda/nvrtc_program.rb

Instance Method Summary collapse

Constructor Details

#initialize(src, name: "default_program", headers: [], include_names: []) ⇒ NVRTCProgram

Returns a new instance of NVRTCProgram.



6
7
8
9
10
11
# File 'lib/cumo/cuda/nvrtc_program.rb', line 6

def initialize(src, name: "default_program", headers: [], include_names: [])
  @ptr = nil
  @src = src # should be UTF-8
  @name = name # should be UTF-8
  @ptr = NVRTC.nvrtcCreateProgram(src, name, headers, include_names)
end

Instance Method Details

#compile(options: []) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/cumo/cuda/nvrtc_program.rb', line 17

def compile(options: [])
  begin
    NVRTC.nvrtcCompileProgram(@ptr, options)
    return NVRTC.nvrtcGetPTX(@ptr)
  rescue NVRTCError => e
    log = NVRTC.nvrtcGetProgramLog(@ptr)
    raise CompileError.new(log, @src, @name, options)
  end
end

#destroyObject



13
14
15
# File 'lib/cumo/cuda/nvrtc_program.rb', line 13

def destroy
  NVRTC.nvrtcDestroyProgram(@ptr) if @ptr
end