char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
d7bd3bfca
char/aliceai-t5-moe
1import os 2from pathlib import Path 3 4 5SDK_CONFIGS = ( 6 { 7"name" :"Hexagon SDK" , 8"repo" :"snapdragon-toolchain/hexagon-sdk" , 9"default_version" :"6.6.0.0" , 10"parent_dir" :"Hexagon_SDK" , 11"archive_prefix" :"hexagon-sdk-v" , 12"markers" : ("hexagon_sdk.json" ,), 13 }, 14 { 15"name" :"OpenCL SDK" , 16"repo" :"snapdragon-toolchain/opencl-sdk" , 17"default_version" :"2.3.2" , 18"parent_dir" :"OpenCL_SDK" , 19"archive_prefix" :"adreno-opencl-sdk-v" , 20"markers" : ("include/CL" ,"lib/OpenCL.lib" ), 21 }, 22) 23 24 25def is_valid_sdk (config ,target_dir ): 26return target_dir .is_dir ()and all ((target_dir / marker ).exists ()for marker in config ["markers" ]) 27 28 29def get_hexagon_tools_dir (hexagon_dir ): 30tools_parent = hexagon_dir / "tools" / "HEXAGON_Tools" 31if not tools_parent .is_dir (): 32raise RuntimeError (f"Expected Hexagon tools directory in { tools_parent } " ) 33tools_dirs = [path for path in tools_parent .iterdir ()if path .is_dir ()] 34if len (tools_dirs )!= 1 : 35raise RuntimeError (f"Expected one Hexagon tools directory in { tools_parent } " ) 36return tools_dirs [0 ] 37 38 39def validate_windows_sdks (): 40hexagon_config ,opencl_config = SDK_CONFIGS 41hexagon_dir = os .environ .get ("HEXAGON_SDK_ROOT" ) 42tools_dir = os .environ .get ("HEXAGON_TOOLS_ROOT" ) 43opencl_dir = os .environ .get ("OPENCL_SDK_ROOT" ) 44missing = [] 45 46expected_tools_dir = None 47if not hexagon_dir or not is_valid_sdk (hexagon_config ,Path (hexagon_dir )): 48missing .append ("HEXAGON_SDK_ROOT" ) 49else : 50try : 51expected_tools_dir = get_hexagon_tools_dir (Path (hexagon_dir )) 52except RuntimeError : 53pass 54if not tools_dir or not expected_tools_dir or Path (tools_dir )!= expected_tools_dir : 55missing .append ("HEXAGON_TOOLS_ROOT" ) 56if not opencl_dir or not is_valid_sdk (opencl_config ,Path (opencl_dir )): 57missing .append ("OPENCL_SDK_ROOT" ) 58if missing : 59raise RuntimeError ( 60f"Missing or invalid Windows SDK paths: { ', ' . join ( missing ) } . " 61"Run scripts/snapdragon/setup-sdk.py first." 62 )