Как получить доступ к данным тензора Pytorch, используя его адрес в памяти?

#python #pytorch

Вопрос:

Я создаю тензор pytorch с

 import torch
x = torch.randn(100,100,device='cuda')
adr = x.data_ptr() #gives address to first element of x, e.g. 30119297024
 

есть ли способ получить доступ к тензорным данным, зная только
adr и сделать что-то вроде

 y = get_tensor_from_address(adr)
 

Где y и x ссылаться на один и тот же тензор?

Комментарии:

1. Почему ты хочешь это сделать? Я не думаю, что это хорошая ( безопасная ) идея…

2. У меня есть несколько независимых микросервисов, работающих на одной машине, которые получают изображение по http-запросу, обрабатывают изображение на графическом процессоре и отправляют его обратно. Я хотел бы найти способ сделать это без прямой отправки изображения, потому что в настоящее время мне приходится передавать данные изображения между памятью процессора и графического процессора для каждого шага обработки

3. способ сделать это без прямой отправки изображения если буфер данных не находится на целевом устройстве, вы не можете просто получить к нему доступ, используя указатель данных с исходного устройства. Я не уверен, что последую за вами сюда.

4. Нет, данные всегда должны храниться на одном и том же устройстве. Я просто хочу, чтобы разные микросервисы могли получить к нему доступ без необходимости переключать устройства.