o
    }oi                     @   sV   d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ G dd dZdS )    N)pretrain)CLIPConfigB32	CLIPModelclip_b32)Trainerc                   @   sJ   e Zd Zejdddd Zdd Zdd Zej	d	d
dgdd Z
dS )TestClipB32class)scopec                 C   s   t S Nr   )self r   _/home/ubuntu/.local/lib/python3.10/site-packages/tests/collections/vlm/recipes/test_clip_b32.pyrecipe_module   s   zTestClipB32.recipe_modulec                 C   sL   |  }t|tjsJ |jtksJ t|jtjsJ |jjtks$J d S r   )model
isinstancerunConfig__fn_or_cls__r   configr   )r   r   model_configr   r   r   
test_model   s
   zTestClipB32.test_modelc                 C   s`  |  }t|tjsJ |jtksJ t|jtjsJ |jjtks$J t|j	tjs-J |j	jt
ks5J |j	jdks=J |j	jdksEJ |j	jdksMJ |j	j}t|tjsYJ |jdks`J |jdksgJ |jdksnJ t|jtjswJ |jjjdksJ |jjdksJ |jjdksJ |jjdksJ |jjd	ksJ |jd usJ |jd usJ d S )
Ngpu      r   MockDataModuleP            )pretrain_reciper   r   Partialr   r   r   r   r   trainerr   accelerator	num_nodesdevicesstrategytensor_model_parallel_sizepipeline_model_parallel_size$encoder_pipeline_model_parallel_sizedata__name__
seq_lengthglobal_batch_sizemicro_batch_sizenum_workerslogresume)r   r   recipestratr   r   r   test_pretrain_recipe_default(   s.   z(TestClipB32.test_pretrain_recipe_defaultznum_nodes,num_gpus)r   r   )r   r   c                 C   s2   |j ||d}|jj|ksJ |jj|ksJ d S )N)r$   num_gpus_per_node)r    r"   r$   r%   )r   r   r$   num_gpusr2   r   r   r   -test_pretrain_recipe_different_configurationsL   s   z9TestClipB32.test_pretrain_recipe_different_configurationsN)r+   
__module____qualname__pytestfixturer   r   r4   markparametrizer7   r   r   r   r   r      s    


$r   )nemo_runr   r:   nemo.collections.llm.apir   nemo.collections.vlmr   r   nemo.collections.vlm.recipesr   nemo.lightningr   r   r   r   r   r   <module>   s   