@@ -200,166 +200,6 @@ Tensor & _th_masked_fill_bool_(Tensor & self, const Tensor & mask, Scalar value)
200200 }
201201 return self;
202202}
203- Tensor & _th_masked_scatter_ (Tensor & self, const Tensor & mask, const Tensor & source) {
204- // DeviceGuard omitted
205- auto dispatch_scalar_type = infer_scalar_type (self);
206-
207- switch (dispatch_scalar_type) {
208- case ScalarType::Bool: {
209- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
210- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
211- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
212- THCudaBoolTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
213- break ;
214- }
215- case ScalarType::Byte: {
216- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
217- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
218- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
219- THCudaByteTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
220- break ;
221- }
222- case ScalarType::Char: {
223- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
224- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
225- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
226- THCudaCharTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
227- break ;
228- }
229- case ScalarType::Double: {
230- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
231- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
232- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
233- THCudaDoubleTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
234- break ;
235- }
236- case ScalarType::Float: {
237- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
238- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
239- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
240- THCudaTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
241- break ;
242- }
243- case ScalarType::Int: {
244- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
245- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
246- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
247- THCudaIntTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
248- break ;
249- }
250- case ScalarType::Long: {
251- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
252- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
253- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
254- THCudaLongTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
255- break ;
256- }
257- case ScalarType::Short: {
258- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
259- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
260- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
261- THCudaShortTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
262- break ;
263- }
264- case ScalarType::Half: {
265- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
266- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
267- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
268- THCudaHalfTensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
269- break ;
270- }
271- case ScalarType::BFloat16: {
272- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
273- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_" , false , DeviceType::CUDA, ScalarType::Byte);
274- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_" , false , DeviceType::CUDA, dispatch_scalar_type);
275- THCudaBFloat16Tensor_maskedCopy (globalContext ().getTHCState (), self_, mask_, source_);
276- break ;
277- }
278- default :
279- AT_ERROR (" _th_masked_scatter_ not supported on CUDAType for " , dispatch_scalar_type);
280- }
281- return self;
282- }
283- Tensor & _th_masked_scatter_bool_ (Tensor & self, const Tensor & mask, const Tensor & source) {
284- // DeviceGuard omitted
285- auto dispatch_scalar_type = infer_scalar_type (self);
286-
287- switch (dispatch_scalar_type) {
288- case ScalarType::Bool: {
289- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
290- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
291- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
292- THCudaBoolTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
293- break ;
294- }
295- case ScalarType::Byte: {
296- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
297- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
298- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
299- THCudaByteTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
300- break ;
301- }
302- case ScalarType::Char: {
303- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
304- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
305- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
306- THCudaCharTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
307- break ;
308- }
309- case ScalarType::Double: {
310- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
311- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
312- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
313- THCudaDoubleTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
314- break ;
315- }
316- case ScalarType::Float: {
317- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
318- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
319- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
320- THCudaTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
321- break ;
322- }
323- case ScalarType::Int: {
324- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
325- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
326- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
327- THCudaIntTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
328- break ;
329- }
330- case ScalarType::Long: {
331- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
332- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
333- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
334- THCudaLongTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
335- break ;
336- }
337- case ScalarType::Short: {
338- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
339- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
340- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
341- THCudaShortTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
342- break ;
343- }
344- case ScalarType::Half: {
345- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
346- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
347- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
348- THCudaHalfTensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
349- break ;
350- }
351- case ScalarType::BFloat16: {
352- auto self_ = checked_dense_tensor_unwrap (self, " self" , 1 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
353- auto mask_ = checked_dense_tensor_unwrap (mask, " mask" , 2 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, ScalarType::Bool);
354- auto source_ = checked_dense_tensor_unwrap (source, " source" , 3 , " _th_masked_scatter_bool_" , false , DeviceType::CUDA, dispatch_scalar_type);
355- THCudaBFloat16Tensor_maskedCopyBool (globalContext ().getTHCState (), self_, mask_, source_);
356- break ;
357- }
358- default :
359- AT_ERROR (" _th_masked_scatter_bool_ not supported on CUDAType for " , dispatch_scalar_type);
360- }
361- return self;
362- }
363203Tensor & _th_index_copy_ (Tensor & self, int64_t dim, const Tensor & index, const Tensor & source) {
364204 // DeviceGuard omitted
365205 auto dispatch_scalar_type = infer_scalar_type (self);
0 commit comments