DataParallel supports multiple input. The error has to be somewhere else.
Could you explain, what AngleLinear is?
Here is a small example using DataParallel and multiple inputs:
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.fc1 = nn.Linear(10, 2)
        self.fc2 = nn.Linear(15, 2)
        
    def forward(self, x1, x2):
        print(x1.device, x2.device)
        x1 = self.fc1(x1)
        x2 = self.fc2(x2)
        x = torch.cat((x1, x2), dim=1)
        return x

device = 'cuda:0'
model = MyModel().to(device)
x1 = torch.randn(2, 10).to(device)
x2 = torch.randn(2, 15).to(device)

output = model(x1, x2)
> (device(type='cuda', index=0), device(type='cuda', index=0))

net = nn.DataParallel(model, device_ids=[0, 1])
output = net(x1, x2)
> (device(type='cuda', index=0), device(type='cuda', index=0))
> (device(type='cuda', index=1), device(type='cuda', index=1))