Okay, let me introduce it again.
This is the simplest case I could find.
The idea is to ravel/unravel temporal 5-dimensional tensors to process one of them in the batch dimension.
It’s basically the following ops:
View-->conv2d-->view
Only cuda shows differences.
Torch 1.6 (cuda 10.__) is ok. Torch 1.7 (cuda 11)is not.
Soo it seems that setting
torch.backends.cudnn.deterministic = True
torch.set_deterministic(True)

Solves the issue. However it wasn’t necessary in Pytorch 1.6 compared to Pytorch 1.7.
Do you know what changed?
import torch
import sys
import subprocess

from torch import nn
import torch


def get_sys_info():
    """

    :param log: Logging logger in which to parse info
    :type log: logging.logger
    :return: None
    """
    result = subprocess.Popen(["nvidia-smi", "--format=csv",
                               "--query-gpu=index,name,driver_version,memory.total,memory.used,memory.free"],
                              stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    nvidia = result.stdout.readlines().copy()
    nvidia = [str(x) for x in nvidia]
    nvidia = [x[2:-3] + '\r\t' for x in nvidia]
    acum = ''
    for x in nvidia:
        acum = acum + x

    return ('  Python VERSION: {0} \n\t'
            '  pyTorch VERSION: {1} \n\t'
            '  CUDA VERSION: {2}\n\t'
            '  CUDNN VERSION: {3} \n\t'
            '  Number CUDA Devices: {4} \n\t'
            '  Devices: {5}\n\t'
            'Active CUDA Device: GPU {6} \n\t'
            'Available devices {7} \n\t'
            'Current cuda device {8} \n\t'.format(sys.version, torch.__version__, torch.version.cuda,
                                                  torch.backends.cudnn.version(), torch.cuda.device_count(),
                                                  acum, torch.cuda.current_device(), torch.cuda.device_count(),
                                                  torch.cuda.current_device()))




def reshape(x, unrolled_shape):
    return x.view(*unrolled_shape, *x.shape[1:])


def check(x_unrolled,unrolled_shape):
    ref = x_unrolled[0]
    all_equal = True
    error_abs = [None for _ in range(unrolled_shape[0])]
    error_mean = [None for _ in range(unrolled_shape[0])]
    error_abs[0] = 0
    error_mean[0] = 0
    for i in range(1, unrolled_shape[0]):
        all_equal = all_equal and torch.allclose(ref, x_unrolled[i])
        diff = torch.abs(ref - x_unrolled[i])
        diff = diff[diff > 0]
        error_abs[i] = diff.sum()
        error_mean[i] = diff.mean()
    return all_equal, max(error_abs), max(error_mean)


class Toy(nn.Module):
    def __init__(self):
        super(Toy, self).__init__()
        self.conv = nn.Conv2d(1,128, padding=0, kernel_size=(7, 3))

    def forward(self, x):
        unraveled_shape = x.shape[:2]
        print(f'Input--> Shape: {x.shape}, device:{x.device}')

        x = x.view(-1, 1, 12,3).contiguous()
        undo = x.view(*unraveled_shape, 12,3).contiguous()
        print(f'Raveled View OP --> Shape: {x.shape}')
        print(f'Unraveled View OP --> Shape: {undo.shape}')

        equal, abs_max, mean_max = check(undo, unraveled_shape)
        print(f'View Results: Are equal: {equal}, Max. Abs. Diff: {abs_max}, Mean Abs. Diff: {mean_max}')

        x = self.conv(x).contiguous()
        undo = x.view(*unraveled_shape, 128, 6,1).contiguous()
        print(f'Raveled Conv2D OP --> Shape: {x.shape}')
        print(f'UnRaveled Conv2D OP --> Shape: {undo.shape}')

        equal, abs_max, mean_max = check(undo, unraveled_shape)
        print(f'View Results: Are equal: {equal}, Max. Abs. Diff: {abs_max}, Mean Abs. Diff: {mean_max}')
        return x


BATCH_SIZE = 16


@torch.no_grad()
def run_test( device):
    device = torch.device(device)
    model = Toy().to(device)
    inp_element = torch.rand(25, 12,3).to(device)
    inp = torch.stack([inp_element.clone() for _ in range(BATCH_SIZE)])

    # print(model)

    y = model(inp)
    print('---------------------------------------')


devices = ['cuda:0', 'cuda:1', 'cpu']

if __name__ == '__main__':

    print(get_sys_info())
    for device in devices:
        run_test( device)

REPORT FOR TORCH 1.6
 Python VERSION: 3.6.9 (default, Oct  8 2020, 12:12:24)
[GCC 8.4.0]
	  pyTorch VERSION: 1.6.0
	  CUDA VERSION: 10.2
	  CUDNN VERSION: 7605
	  Number CUDA Devices: 3
	
	Active CUDA Device: GPU 0
	Available devices 3
	Current cuda device 0
	
Input--> Shape: torch.Size([16, 25, 12, 3]), device:cuda:0
Raveled View OP --> Shape: torch.Size([400, 1, 12, 3])
Unraveled View OP --> Shape: torch.Size([16, 25, 12, 3])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
Raveled Conv2D OP --> Shape: torch.Size([400, 128, 6, 1])
UnRaveled Conv2D OP --> Shape: torch.Size([16, 25, 128, 6, 1])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
---------------------------------------
Input--> Shape: torch.Size([16, 25, 12, 3]), device:cuda:1
Raveled View OP --> Shape: torch.Size([400, 1, 12, 3])
Unraveled View OP --> Shape: torch.Size([16, 25, 12, 3])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
Raveled Conv2D OP --> Shape: torch.Size([400, 128, 6, 1])
UnRaveled Conv2D OP --> Shape: torch.Size([16, 25, 128, 6, 1])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
---------------------------------------
Input--> Shape: torch.Size([16, 25, 12, 3]), device:cpu
Raveled View OP --> Shape: torch.Size([400, 1, 12, 3])
Unraveled View OP --> Shape: torch.Size([16, 25, 12, 3])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
Raveled Conv2D OP --> Shape: torch.Size([400, 128, 6, 1])
UnRaveled Conv2D OP --> Shape: torch.Size([16, 25, 128, 6, 1])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
---------------------------------------


REPORT FOR PYTORCH 1.7
[GCC 8.4.0] 
	  pyTorch VERSION: 1.7.0+cu110 
	  CUDA VERSION: 11.0
	  CUDNN VERSION: 8004 
	  Number CUDA Devices: 3 
	
	Active CUDA Device: GPU 0 
	Available devices 3 
	Current cuda device 0 
	
Input--> Shape: torch.Size([16, 25, 12, 3]), device:cuda:0
Raveled View OP --> Shape: torch.Size([400, 1, 12, 3])
Unraveled View OP --> Shape: torch.Size([16, 25, 12, 3])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
Raveled Conv2D OP --> Shape: torch.Size([400, 128, 6, 1])
UnRaveled Conv2D OP --> Shape: torch.Size([16, 25, 128, 6, 1])
View Results: Are equal: False, Max. Abs. Diff: 0.00018408219330012798, Mean Abs. Diff: 2.6632262617454217e-08
---------------------------------------
Input--> Shape: torch.Size([16, 25, 12, 3]), device:cuda:1
Raveled View OP --> Shape: torch.Size([400, 1, 12, 3])
Unraveled View OP --> Shape: torch.Size([16, 25, 12, 3])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
Raveled Conv2D OP --> Shape: torch.Size([400, 128, 6, 1])
UnRaveled Conv2D OP --> Shape: torch.Size([16, 25, 128, 6, 1])
View Results: Are equal: False, Max. Abs. Diff: 0.0001880067866295576, Mean Abs. Diff: 2.7989695894348188e-08
---------------------------------------
Input--> Shape: torch.Size([16, 25, 12, 3]), device:cpu
Raveled View OP --> Shape: torch.Size([400, 1, 12, 3])
Unraveled View OP --> Shape: torch.Size([16, 25, 12, 3])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
Raveled Conv2D OP --> Shape: torch.Size([400, 128, 6, 1])
UnRaveled Conv2D OP --> Shape: torch.Size([16, 25, 128, 6, 1])
View Results: Are equal: True, Max. Abs. Diff: 0, Mean Abs. Diff: 0
---------------------------------------

Process finished with exit code 0