#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. Нет, данные всегда должны храниться на одном и том же устройстве. Я просто хочу, чтобы разные микросервисы могли получить к нему доступ без необходимости переключать устройства.