code: def test_matmul(self):
      N = 1024
      a = Tensor.rand(N, N)
      b = Tensor.rand(N, N)
      si = (a @ b).lazydata.schedule()[-1]
      lin = Linearizer(si.ast)
      lin.hand_coded_optimizations()
      print(lin.colored_shape())
      uops = lin.linearize().uops
      graph_uops(uops)
      for u in uops:
          print(u)
      print(OpenCLRenderer("matmul", uops)[0])
  
file_path: tinygrad/test/external/external_test_uops_graphing.py
imports: import unittest
  from tinygrad.tensor import Tensor
  from tinygrad.codegen.linearizer import Linearizer
  from tinygrad.renderer.cstyle import OpenCLRenderer
  from tinygrad.graph import graph_uops
  from tinygrad.nn import Conv2d
label_desc: Use image node_id 1 for calling the TestUopsGraph obj's underlying member method code with example usage: obj.test_matmul() without return types