mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-06-11 23:46:02 +08:00
better error message when invalid renderer is specified (#15573)
This commit is contained in:
committed by
GitHub
parent
0d6fbc2355
commit
6c67bd4c14
@@ -24,6 +24,11 @@ class TestDevice(unittest.TestCase):
|
||||
with self.assertRaises(ModuleNotFoundError):
|
||||
Device["TYPO"]
|
||||
|
||||
@unittest.skipIf(Device.DEFAULT != "CPU", "only run on CPU")
|
||||
def test_nonexistent_renderer(self):
|
||||
with self.assertRaisesRegex(AssertionError, "No renderer"):
|
||||
with Context(DEV="CPU:TYPO"): Device[Device.DEFAULT].renderer
|
||||
|
||||
def test_lowercase_canonicalizes(self):
|
||||
device = Device.DEFAULT
|
||||
with Context(DEV=device.lower()):
|
||||
|
||||
@@ -287,6 +287,7 @@ class Compiled:
|
||||
assert (rn:=next((self._renderer_name(r) for r in self.renderers if getenv(f"{self.device}_{self._renderer_name(r)}")), None)) is None, \
|
||||
f"{self.device}_{rn}=1 is deprecated, use DEV={self.device}:{rn} or {self.device}_CC={rn} instead"
|
||||
renderers = [r for r in self.renderers if self._renderer_name(r) == rn] if (rn:=DEV.target(self.device).renderer) else self.renderers
|
||||
assert renderers, f"No renderer for {self.device} " + (f"matches request {rn!r}" if rn else "is available")
|
||||
return select_first_inited(renderers, f"No renderer for {self.device} is available", self.cached_renderer)
|
||||
|
||||
def synchronize(self):
|
||||
|
||||
Reference in New Issue
Block a user