From afef69a37d15a57fb857a8f3fe7293b02dac88ef Mon Sep 17 00:00:00 2001 From: patrini32 Date: Tue, 7 Jan 2025 20:27:43 +0300 Subject: [PATCH] MOCKGPU on mac os (#8520) * tweaks for macos * fix * fix * typo * remove nvidia changes * remove nv related changes * change address back --- autogen_stubs.sh | 2 +- test/mockgpu/amd/amdgpu.py | 2 +- tinygrad/runtime/autogen/comgr.py | 1 + tinygrad/runtime/ops_amd.py | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/autogen_stubs.sh b/autogen_stubs.sh index 670a789753..55afe5fabb 100755 --- a/autogen_stubs.sh +++ b/autogen_stubs.sh @@ -69,7 +69,7 @@ generate_comgr() { --clang-args="-D__HIP_PLATFORM_AMD__ -I/opt/rocm/include -x c++" -o $BASE/comgr.py -l /opt/rocm/lib/libamd_comgr.so fixup $BASE/comgr.py sed -i "s\import ctypes\import ctypes, ctypes.util, os\g" $BASE/comgr.py - patch_dlopen $BASE/comgr.py amd_comgr "'/opt/rocm/lib/libamd_comgr.so'" "os.getenv('ROCM_PATH', '')+'/lib/libamd_comgr.so'" + patch_dlopen $BASE/comgr.py amd_comgr "'/opt/rocm/lib/libamd_comgr.so'" "os.getenv('ROCM_PATH', '')+'/lib/libamd_comgr.so'" "'/usr/local/lib/libamd_comgr.dylib'" sed -i "s\ctypes.CDLL('/opt/rocm/lib/libamd_comgr.so')\_try_dlopen_amd_comgr()\g" $BASE/comgr.py python3 -c "import tinygrad.runtime.autogen.comgr" } diff --git a/test/mockgpu/amd/amdgpu.py b/test/mockgpu/amd/amdgpu.py index 1a12061310..d5fdd36b8b 100644 --- a/test/mockgpu/amd/amdgpu.py +++ b/test/mockgpu/amd/amdgpu.py @@ -19,7 +19,7 @@ WAIT_REG_MEM_FUNCTION_ALWAYS = 0 WAIT_REG_MEM_FUNCTION_EQ = 3 # == WAIT_REG_MEM_FUNCTION_GEQ = 5 # >= -REMU_PATHS = ["libremu.so", "/usr/local/lib/libremu.so"] +REMU_PATHS = ["libremu.so", "/usr/local/lib/libremu.so", "libremu.dylib", "/usr/local/lib/libremu.dylib"] def _try_dlopen_remu(): for path in REMU_PATHS: try: diff --git a/tinygrad/runtime/autogen/comgr.py b/tinygrad/runtime/autogen/comgr.py index e76ee220e5..6d3e5921d0 100644 --- a/tinygrad/runtime/autogen/comgr.py +++ b/tinygrad/runtime/autogen/comgr.py @@ -10,6 +10,7 @@ import ctypes, ctypes.util, os PATHS_TO_TRY = [ '/opt/rocm/lib/libamd_comgr.so', os.getenv('ROCM_PATH', '')+'/lib/libamd_comgr.so', + '/usr/local/lib/libamd_comgr.dylib', ] def _try_dlopen_amd_comgr(): library = ctypes.util.find_library("amd_comgr") diff --git a/tinygrad/runtime/ops_amd.py b/tinygrad/runtime/ops_amd.py index 02c7ca0b13..8b8cc6444e 100644 --- a/tinygrad/runtime/ops_amd.py +++ b/tinygrad/runtime/ops_amd.py @@ -6,7 +6,7 @@ from dataclasses import dataclass from tinygrad.runtime.support.hcq import HCQCompiled, HCQAllocator, HCQBuffer, HWQueue, CLikeArgsState, HCQSignal, HCQProgram, HWInterface from tinygrad.ops import sint from tinygrad.device import BufferSpec -from tinygrad.helpers import getenv, to_mv, round_up, data64_le, mv_address, DEBUG +from tinygrad.helpers import getenv, to_mv, round_up, data64_le, mv_address, DEBUG, OSX from tinygrad.renderer.cstyle import AMDRenderer from tinygrad.runtime.autogen import kfd, hsa, amd_gpu, libc, libpciaccess, vfio from tinygrad.runtime.autogen.am import am @@ -269,7 +269,7 @@ class AMDAllocator(HCQAllocator['AMDDevice']): def map(self, buf:HCQBuffer): self.dev.dev_iface.map(buf._base if buf._base is not None else buf) -MAP_FIXED, MAP_NORESERVE, MAP_LOCKED = 0x10, 0x400, 0x2000 +MAP_FIXED, MAP_NORESERVE, MAP_LOCKED = 0x10, 0x400, 0 if OSX else 0x2000 @dataclass class AMDQueueDesc: