File size: 1,379 Bytes
d3d8124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# decorators.py
from functools import wraps
# La importaci贸n original 'from spaces import GPU' es espec铆fica de Hugging Face Spaces.
# Para un uso general o con Modal, este decorador necesitar铆a ser adaptado o
# la gesti贸n de GPU se har铆a directamente a trav茅s de la configuraci贸n de la funci贸n Modal.

# Por ahora, mantenemos la estructura, pero ten en cuenta que @GPU no funcionar谩
# fuera del entorno de HF Spaces tal como est谩. Modal tiene su propia forma de asignar GPUs.

class GPU: # Placeholder para simular la estructura si no se ejecuta en HF Spaces
    def __init__(self, duration=100):
        self.duration = duration
    def __call__(self, func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            # print(f"Simulando ejecuci贸n con GPU (duraci贸n: {self.duration}s) para: {func.__name__}")
            return func(*args, **kwargs)
        return wrapper

def gpu_decorator(duration=100):
    """
    Decorador personalizado que simula el uso de GPU.
    En un entorno de Hugging Face Spaces con GPU asignada,
    el decorador `spaces.GPU` real se encargar铆a de la gesti贸n.
    """
    def decorator(func):
        @GPU(duration=duration) # Usando nuestro placeholder o el real de `spaces`
        @wraps(func)
        def wrapper(*args, **kwargs):
            return func(*args, **kwargs)
        return wrapper
    return decorator