[RFC]: DLPack based exchange of dtype and Device
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
No se especifican archivos de implementación ni pruebas. Empieza revisando las interfaces dtype y Device existentes de array API junto con las definiciones de DLDataType y DLDevice de DLPack, y determina después si los métodos propuestos y la compatibilidad con from_dlpack deben formar parte del alcance. Se considera terminado cuando se hayan acordado el alcance y la especificación de la interfaz.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Background
As of now we have standard interface for exchanging tensors through DLPack. One minor but still useful thing is to also provide a mechanism for solutions. Motivating example
import numpy
import torch
# results in error
torch.empty((1, 2), dtype=numpy.float16)
# results in error
numpy.empty((1, 2), dtype=torch.float16)
It could be useful for the package.dtype and package.Device to be able to provide an interface for exchange such information. Given we already have DLDataType and DLDevice in dlpack, it might be helpful to bringup interfaces to transparently expose them. Such information can also be helpful for bindings to implement generic support for these types
Proposal
# defined in dtype
class dtype:
def __dlpack_data_type__():
"""Return a tuple (code, bits, lanes) in DLDataType format
"""
# defined in Device
class Device:
def __dlpack_device__():
"""Return a tuple of (device_type, device_id) """
Then if desirable, the interface could implement something like
def empty(shape, dtype):
if hasattr(dtype, "___dlpack_data_type__"):
convert
There is also possibility of trying to run general value conversion. I do not think we have to update from_dlpack to also support these values, but there is an option to do so
def from_dlpack(src):
if hasattr(src, "__dlpack__"):
# this is an array
if hasattr(src, "__dlpack_data_type__"):
# this is a dtype
if hasattr(src, "__dlpack_device__"):
# this is a device
- Lenguaje dominante
- Python
- Estrellas
- 281
- Forks
- 52
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de data-apis/array-api
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Maintenance
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de data-apis/array-api
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100