| 
206 | 206 | 
 
  | 
207 | 207 | Error  | 
208 | 208 | MPSGraphBuilder::mpsScatterOp(NodePtr nodePtr) {  | 
209 |  | -  auto graphNode = nodePtr->mpsnode_union_as_MPSScatter();  | 
210 |  | -  ET_LOG(  | 
211 |  | -    Debug, "%s %d: %d",  | 
212 |  | -    __FUNCTION__, graphNode->input1_id(), graphNode->output_id()  | 
213 |  | -  );  | 
 | 209 | +  if (@available(iOS 15.4, macOS 12.3, *)) {  | 
 | 210 | +    auto graphNode = nodePtr->mpsnode_union_as_MPSScatter();  | 
 | 211 | +    ET_LOG(  | 
 | 212 | +      Debug, "%s %d: %d",  | 
 | 213 | +      __FUNCTION__, graphNode->input1_id(), graphNode->output_id()  | 
 | 214 | +    );  | 
214 | 215 | 
 
  | 
215 |  | -  int64_t dim = graphNode->dim();  | 
216 |  | -  MPSGraphTensor* inputTensor = getMPSGraphTensor(graphNode->input1_id());  | 
217 |  | -  MPSGraphTensor* indicesTensor = getMPSGraphTensor(graphNode->idx_id());  | 
218 |  | -  MPSGraphTensor* updatesTensor = getMPSGraphTensor(graphNode->src_id());  | 
 | 216 | +    int64_t dim = graphNode->dim();  | 
 | 217 | +    MPSGraphTensor* inputTensor = getMPSGraphTensor(graphNode->input1_id());  | 
 | 218 | +    MPSGraphTensor* indicesTensor = getMPSGraphTensor(graphNode->idx_id());  | 
 | 219 | +    MPSGraphTensor* updatesTensor = getMPSGraphTensor(graphNode->src_id());  | 
219 | 220 | 
 
  | 
220 |  | -  _idToMPSGraphTensor[graphNode->output_id()] =  | 
221 |  | -    [_mpsGraph scatterAlongAxis:dim  | 
222 |  | -                 withDataTensor:inputTensor  | 
223 |  | -                  updatesTensor:updatesTensor  | 
224 |  | -                  indicesTensor:indicesTensor  | 
225 |  | -                           mode:MPSGraphScatterModeSet  | 
226 |  | -                           name:nil];  | 
227 |  | -  return Error::Ok;  | 
 | 221 | +    _idToMPSGraphTensor[graphNode->output_id()] =  | 
 | 222 | +      [_mpsGraph scatterAlongAxis:dim  | 
 | 223 | +                   withDataTensor:inputTensor  | 
 | 224 | +                    updatesTensor:updatesTensor  | 
 | 225 | +                    indicesTensor:indicesTensor  | 
 | 226 | +                             mode:MPSGraphScatterModeSet  | 
 | 227 | +                             name:nil];  | 
 | 228 | + | 
 | 229 | +    return Error::Ok;  | 
 | 230 | +  } else {  | 
 | 231 | +    ET_LOG(Error, "MPS: scatter op is not supported on iOS < 15.4 and macOS < 12.3");  | 
 | 232 | + | 
 | 233 | +    return Error::NotSupported;  | 
 | 234 | +  }  | 
228 | 235 | }  | 
229 | 236 | 
 
  | 
230 | 237 | 
 
  | 
 | 
0 commit comments