package rune

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file rune_jit_metal_or_missing.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 1 "rune/lib-jit/backends/metal/rune_jit_metal_or_missing.missing.ml"
let not_available () =
  failwith "Metal JIT backend is not available on this platform"

include (
  struct
    let name = "STUB_BACKEND"

    type device_info = unit
    type device_buffer_native = unit
    type compiled_artifact_native = unit
    type callable_kernel_native = unit

    type nonrec 'a device_buffer =
      ('a, device_buffer_native) Rune_jit.Backend_intf.device_buffer

    type nonrec any_device_buffer =
      device_buffer_native Rune_jit.Backend_intf.any_device_buffer

    type nonrec compiled_artifact =
      compiled_artifact_native Rune_jit.Backend_intf.compiled_artifact

    type nonrec callable_kernel =
      callable_kernel_native Rune_jit.Backend_intf.callable_kernel

    module Device_info = struct
      let get_default () = not_available ()
      let max_shared_memory _ = not_available ()
      let max_workgroup_size _ = not_available ()
      let supports_dtype _ _ = not_available ()
      let renderer_float4_str _ = not_available ()
      let renderer_smem_prefix _ = not_available ()
      let renderer_barrier_str _ = not_available ()
    end

    module Renderer = struct
      let render ~device_info:_ ~lowered_ir:_ ~kernel_name:_ = not_available ()
    end

    module Compiler = struct
      type compile_options = unit

      let default_options _ = not_available ()
      let compile ~device_info:_ ~source_code:_ ~options:_ = not_available ()
    end

    module Runtime = struct
      let allocate_buffer ~device_info:_ ~size_in_bytes:_ ~dtype:_ =
        not_available ()

      let copy_to_device ~dest_buffer:_ ~host_data:_ ~host_data_offset_bytes:_
          ~copy_size_bytes:_ =
        not_available ()

      let copy_from_device ~src_buffer:_ ~host_dest_ptr:_
          ~device_data_offset_bytes:_ ~copy_size_bytes:_ =
        not_available ()

      let get_kernel ~artifact:_ ~kernel_name:_ = not_available ()

      let launch_kernel ?local_dims:_ ~device_info:_ ~global_dims:_ ~args:_ _ =
        not_available ()

      let synchronize ~device_info:_ = not_available ()
    end
  end :
    Rune_jit.Backend_intf.S)