MCPcopy
hub / github.com/tinygrad/tinygrad / render_dtype

Method render_dtype

tinygrad/renderer/cstyle.py:148–156  ·  view source on GitHub ↗
(self, dt:DType, mutable=True)

Source from the content-addressed store, hash-verified

146
147 def render_cast(self, dt:DType, val: str) -> str: return f"({self.render_dtype(dt)})({val})"
148 def render_dtype(self, dt:DType, mutable=True) -> str:
149 if isinstance(dt, ImageDType): return f"{'write_only' if mutable else 'read_only'} image2d_t"
150 if isinstance(dt, PtrDType):
151 prefix = ""
152 if dt.addrspace == AddrSpace.LOCAL and self.smem_prefix_for_cast: prefix = self.smem_prefix
153 if dt.addrspace == AddrSpace.GLOBAL: prefix = self.buffer_prefix
154 return prefix + self.render_dtype(dt.base) + "*"
155 if dt.count > 1: return self.type_map.get(scalar:=dt.scalar(), scalar.name).replace(" ", "_") + str(dt.count)
156 return self.type_map.get(scalar:=dt.scalar(), scalar.name)
157
158 def __getitem__(self, key): return self.r[key] # hacky helper
159 def _render(self, uops:list[UOp]) -> tuple[str, list[str], list[tuple[str,tuple[DType,bool]]]]:

Callers 13

render_kernelMethod · 0.95
render_castMethod · 0.95
_renderMethod · 0.95
cstyle.pyFile · 0.45
render_vector_prefixMethod · 0.45
_render_definesMethod · 0.45
OpenCLRendererClass · 0.45
MetalRendererClass · 0.45
render_kernelMethod · 0.45
CUDARendererClass · 0.45
render_vector_prefixMethod · 0.45
render_kernelMethod · 0.45

Calls 3

scalarMethod · 0.80
replaceMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected