csullivan commented on a change in pull request #7980:
URL: https://github.com/apache/tvm/pull/7980#discussion_r632152025
##########
File path: src/runtime/metal/metal_module.mm
##########
@@ -85,44 +109,49 @@ void SaveToBinary(dmlc::Stream* stream) final {
if (it != e.smap.end()) return it->second;
// compile
NSError* err_msg = nil;
- if (e.lib == nil) {
- if (fmt_ == "metal") {
- MTLCompileOptions* opts = [MTLCompileOptions alloc];
- opts.languageVersion = MTLLanguageVersion2_3;
- opts.fastMathEnabled = YES;
- // opts = nil;
- e.lib = [w->devices[device_id]
- newLibraryWithSource:[NSString stringWithUTF8String:data_.c_str()]
- options:opts
- error:&err_msg];
- [opts dealloc];
- if (e.lib == nil) {
- LOG(FATAL) << "Fail to compile metal lib:" << [[err_msg
localizedDescription] UTF8String];
- }
- if (err_msg != nil) {
- LOG(INFO) << "Warning: " << [[err_msg localizedDescription]
UTF8String];
- }
- } else {
- // Build from library.
- auto q = dispatch_queue_create("q", DISPATCH_QUEUE_SERIAL);
- auto data = dispatch_data_create(data_.c_str(), data_.length(), q,
- ^{
- });
- e.lib = [w->devices[device_id] newLibraryWithData:data error:&err_msg];
- if (err_msg != nil || e.lib == nil) {
- LOG(FATAL) << "Fail to compile metal lib:" << [[err_msg
localizedDescription] UTF8String];
- }
+ id<MTLLibrary> lib = nil;
+ std::string source;
+ auto kernel = parsed_kernels_.find(func_name);
+ if (kernel != parsed_kernels_.end())
Review comment:
In that case I personally would prefer the metal backward compat be
specific to the metal backend and the general SplitKernel util to contain the
existence ICHECK on the function delimiter.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]