U
    d  ć                   @   s    d dl mZmZ d dlmZ d dlmZ d dlZe ddg” dd Z	e 
e ”  d	”e 
e ” d
k d”e 
ej d”G dd deZedkre ”  dS )é    )ŚcoreŚ	workspace)Ś
caffe2_pb2)ŚTestCaseNZcaffe2z--caffe2_cpu_numa_enabled=1c                 C   s   t  | ”}d| ” _t ” }tj|_d|_|j	g ddgd|d d|_|j	g ddgd|d t ” }tj
|_d|_|jdd|d	 |jdd
|d	 |S )NZasync_schedulingr   Śoutput_blob_0é   gėQø	@)ŚshapeŚvalueŚdevice_optionŚoutput_blob_1Zoutput_blob_0_gpu)r
   Zoutput_blob_1_gpu)r   ZNetZProtoŚtyper   ZDeviceOptionZCPUZdevice_typeZnuma_node_idZConstantFillZCUDAZ	device_idZCopyCPUToGPU)Znet_nameŚnetZnuma_device_optionZgpu_device_option© r   ś;/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/numa_test.pyŚbuild_test_net   s,    

’’’’r   zNUMA is not enabledé   zNot enough NUMA nodeszNo GPU supportc                   @   s   e Zd Zdd ZdS )ŚNUMATestc                 C   s:   t d}t |” |  t d”d” |  t d”d” d S )NŚ	test_numar   r   r   r   )r   r   Z
RunNetOnceŚassertEqualZGetBlobNUMANode)Śselfr   r   r   r   r   +   s    
zNUMATest.test_numaN)Ś__name__Ś
__module__Ś__qualname__r   r   r   r   r   r   '   s   r   Ś__main__)Zcaffe2.pythonr   r   Zcaffe2.protor   Zcaffe2.python.test_utilr   ZunittestZ
GlobalInitr   ZskipIfZIsNUMAEnabledZGetNumNUMANodesZhas_gpu_supportr   r   Śmainr   r   r   r   Ś<module>   s   
