mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-28 08:31:25 +00:00 
			
		
		
		
	metal : option to embed MSL source into compiled binary (whisper/1842)
* ggml : embed Metal library source (ggml-metal.metal) into binary enable by setting WHISPER_EMBED_METAL_LIBRARY * rename the build option * rename the preprocessor directive * generate Metal library embedding assembly on-fly during build process
This commit is contained in:
		 Didzis Gosko
					Didzis Gosko
				
			
				
					committed by
					
						 Georgi Gerganov
						Georgi Gerganov
					
				
			
			
				
	
			
			
			 Georgi Gerganov
						Georgi Gerganov
					
				
			
						parent
						
							d0e3ce51f4
						
					
				
				
					commit
					890559ab28
				
			| @@ -277,6 +277,14 @@ static struct ggml_metal_context * ggml_metal_init(int n_cb) { | |||||||
|                 return NULL; |                 return NULL; | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|  | #if GGML_METAL_EMBED_LIBRARY | ||||||
|  |             GGML_METAL_LOG_INFO("%s: using embedded metal library\n", __func__); | ||||||
|  |  | ||||||
|  |             extern const char ggml_metallib_start[]; | ||||||
|  |             extern const char ggml_metallib_end[]; | ||||||
|  |  | ||||||
|  |             NSString * src  = [[NSString alloc] initWithBytes:ggml_metallib_start length:(ggml_metallib_end-ggml_metallib_start) encoding:NSUTF8StringEncoding]; | ||||||
|  | #else | ||||||
|             GGML_METAL_LOG_INFO("%s: default.metallib not found, loading from source\n", __func__); |             GGML_METAL_LOG_INFO("%s: default.metallib not found, loading from source\n", __func__); | ||||||
|  |  | ||||||
|             NSString * sourcePath; |             NSString * sourcePath; | ||||||
| @@ -299,6 +307,7 @@ static struct ggml_metal_context * ggml_metal_init(int n_cb) { | |||||||
|                 GGML_METAL_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); |                 GGML_METAL_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); | ||||||
|                 return NULL; |                 return NULL; | ||||||
|             } |             } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|             @autoreleasepool { |             @autoreleasepool { | ||||||
|                 // dictionary of preprocessor macros |                 // dictionary of preprocessor macros | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user