def rotate_half(x):
x = rearrange(x, "... (j d) -> ... j d", j=2)
x = x.contiguous()
x1, x2 = x.unbind(dim=-2)
return torch.cat((-x2, x1), dim=-1).cuda()
以上代码在GPU运行时,报如下错误:
RuntimeError: transform: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered
但是将模型放到CPU运行时,能正常运行,试了网上各种方法都不行,最后将这部分内容放CPU计算就可以了
def rotate_half(x):
x = x.to("cpu")
x = rearrange(x, "... (j d) -> ... j d", j=2)
x = x.contiguous()
x1, x2 = x.unbind(dim=-2)
return torch.cat((-x2, x1), dim=-1).cuda()