elvin-nnov commented on a change in pull request #7980:
URL: https://github.com/apache/tvm/pull/7980#discussion_r632299781
##########
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:
@tqchen do we care about backward compatibility or not? If not, it might
be ok so far, but we need to decide when we will start to care and what use
cases should work and be regularly verified in the future. It must not be a
deal only metal backend
@csullivan what bahavior do you propose in common `SplitKernel`? Metal
backend uses it, it cannot just abort execution. Warnings in the runtime are
also useles. It might be an error code, but empty returned map detects the
absent of Function delimiter with the same efficiency as return code
--
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]