MCPcopy Index your code
hub / github.com/tinygrad/tinygrad / _get_kernel_code

Method _get_kernel_code

test/amd/test_integration.py:78–93  ·  view source on GitHub ↗
(self, op_fn)

Source from the content-addressed store, hash-verified

76 """Test that we can parse tinygrad kernel disassembly."""
77
78 def _get_kernel_code(self, op_fn) -> bytes:
79 from tinygrad import Tensor
80 from tinygrad.helpers import Target
81 from tinygrad.codegen import to_program
82 from tinygrad.renderer.llvmir import AMDLLVMRenderer
83 from tinygrad.runtime.support.elf import elf_loader
84 from tinygrad.uop.ops import Ops
85
86 result = op_fn(Tensor)
87 linear = result.schedule_linear()
88 sink_items = [call for call in linear.src if call.src[0].op == Ops.SINK]
89 assert len(sink_items) > 0, "No SINK in schedule"
90 renderer = AMDLLVMRenderer(Target("AMD", arch='gfx1100'))
91 prg = to_program(sink_items[0].src[0], renderer)
92 lib = renderer.compiler.compile(prg.src[3].arg)
93 return next(s.content for s in elf_loader(lib)[1] if s.name == ".text")
94
95 def test_simple_add_kernel(self):
96 """Generate a simple add kernel from tinygrad and verify disassembly."""

Callers 2

test_matmul_kernelMethod · 0.95

Calls 6

AMDLLVMRendererClass · 0.90
TargetClass · 0.90
to_programFunction · 0.90
elf_loaderFunction · 0.90
schedule_linearMethod · 0.80
compileMethod · 0.45

Tested by

no test coverage detected