+
    –°³j°"  ã                   ób   € ^ RI t ^ RIt^ RIHt . t] P
                  ! ]4      tR R ltR R lt	R# )é    N)ÚIndentedBufferc          
      óš   € V ^8„  d   QhR\         R\        \         ,          R\        \         \        3,          R,          R\         R\         /# )é   Úpackage_nameÚmodel_namesÚexample_inputs_mapNÚdevice_typeÚreturn)ÚstrÚlistÚdictÚint)Úformats   "Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/export/experimental/_utils.pyÚ__annotate__r      sR   € ÷ qñ qÜðqä”c•ðqô œS¤#˜X�¨Õ-ðqô ð	qô
 	ñqó    c                ó€  € \        4       pVP                  . RKO4       VR8X  dG   \        P                  P                  '       d   VP                  R.4       MVP                  RR.4       V F  pVP                  RV  RV RV R24       K   	  VP                  4        V F  pVP                  R	V R
24       K  	  VP                  . RLO4       VP                  4       ;_uu_ 4        VP                  RV R24       VP                  R4       VP                  4       ;_uu_ 4        VP                  R4       VEe   \        V4       EF^  w  reW%,          pVP                  RV 24       VP                  RV^,            R
24       VP                  RV R24       VP                  4       ;_uu_ 4        VP                  RV R24       VP                  R4       VP                  R4       VP                  4       ;_uu_ 4        VP                  R4       VP                  R4       RRR4       VP                  R4       VP                  R4       VP                  R4       VP                  RV^,            R24       RRR4       VP                  R4       VP                  4        EKa  	  VP                  4        VP                  R4       \        \        V4      4       F,  pVP                  R V^,            R!2R"V^,            R#2.4       K.  	  VP                  R$4       \        \        V4      4       F  pVP                  R%V^,            R
24       K!  	  VP                  R&4       \        V4       Fj  w  reVP                  R'V^,            R(2R)V^,            R*2R+V^,            R,V R-2R.V^,            R/2R0V^,            R/2R1R2V  RV R32R4V^,            R52.4       Kl  	  VEeP   VP                  R64       \        \        V4      4       FY  pVP                  R7V^,            R824       VP                  R4V^,            R9V^,            R:V^,            R;V^,            R<2	4       K[  	  VP                  R=4       \        \        V4      4       F,  pVP                  R>V^,            R!2R?V^,            R@2.4       K.  	  VP                  RA4       \        \        V4      4       FO  pVP                  RBV^,            RCV^,            RD24       VP                  REV^,            RFV^,            RG24       KQ  	  VP                  RH4       RRR4       VP                  RI.4       VP                  4       ;_uu_ 4        VP                  RJ4       VP                  R4       RRR4       VP                  R4       RRR4       VP                  R4       VP                  4       #   + '       g   i     ELÁ; i  + '       g   i     EL~; i  + '       g   i     LÇ; i  + '       g   i     L…; i  + '       g   i     L; i)MaQ  
Generates a main.cpp file for AOTInductor standalone models in the specified package.

Args:
    package_name (str): Name of the package containing the models.
    model_names (List[str]): List of model names to include in the generated main.cpp.
    cuda (bool): Whether to generate code with CUDA support.
    example_inputs_map (Optional[Dict[str, List[Tensor]]]): A mapping from model name to
        its list of example input tensors. If provided, the generated main.cpp will
        load and run these inputs.

Returns:
    str: The contents of the generated main.cpp file as a string.
Úcudaz#include <hip/hip_runtime.h>z#include <cuda.h>z#include <cuda_runtime_api.h>z
#include "ú/data/aotinductor/Ú/z.h"z+using torch::aot_inductor::AOTInductorModelÚ;zstd::string device_str = "z";ztry {zc10::Device device(device_str);Nz // Load input tensors for model z%std::vector<at::Tensor> input_tensorszfor (int j = 0; j < z; ++j) {zstd::string filename = "z%_input_" + std::to_string(j) + ".pt";z-std::ifstream in(filename, std::ios::binary);zif (!in.is_open()) {z>std::cerr << "Failed to open file: " << filename << std::endl;z	return 1;Ú}zastd::vector<char> buffer((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());z2torch::IValue ivalue = torch::pickle_load(buffer);Úinput_tensorsz).push_back(ivalue.toTensor().to(device));z!
// Create array of input handleszauto input_handlesz =zL    torch::aot_inductor::unsafe_alloc_new_handles_from_tensors(input_tensorsz);z#
// Create array for output handleszAtenTensorHandle output_handlez
// Create and load modelszauto constants_mapz# = std::make_shared<ConstantMap>();zauto constants_arrayz3 = std::make_shared<std::vector<ConstantHandle>>();z
auto modelz$ = std::make_unique<AOTInductorModelz>(z    std::move(constants_mapz),z    std::move(constants_arrayz    device_str,z    "z/");Úmodelz->load_constants();z
// Run the modelsz,torch::aot_inductor::DeviceStreamType streamz = nullptr;z->run(&input_handlesz[0], &output_handlez, streamz, nullptr);z%
// Convert output handles to tensorszauto output_tensorzN    torch::aot_inductor::alloc_tensors_by_stealing_from_handles(&output_handlez, 1);z
// Validate outputszstd::cout << "output_tensorz\n" << output_tensorz << std::endl;ztorch::save(output_tensorz, "output_tensorz.pt");z	return 0;z#} catch (const std::exception &e) {z0std::cerr << "Error: " << e.what() << std::endl;)z#include <dlfcn.h>z#include <fstream>z#include <iostream>z#include <memory>z#include <torch/torch.h>z#include <vector>z<#include <torch/csrc/inductor/aoti_torch/tensor_converter.h>)z*using torch::aot_inductor::ConstantHandle;z'using torch::aot_inductor::ConstantMap;Ú z"int main(int argc, char* argv[]) {)r   Ú
writelinesÚtorchÚversionÚhipÚ	writelineÚnewlineÚindentÚ	enumerateÚrangeÚlenÚgetvalue)r   r   r   r	   ÚibÚ
model_nameÚiÚ
num_inputss   &&&&    r   Ú_get_main_cpp_filer+      sº  € ô* 
Ó	€Bà‡M�Mò	
ô
ð �fÔÜ�=‰=××ÐØ�M‰Mà2ðõð �M‰Mà'Ø3ðôó "ˆ
Ø
�‰Ø˜˜Ð&8¸¸ÀAÀjÀ\ÐQTÐUö	
ñ "ð
 ‡J�J„LÛ!ˆ
Ø
�‰ÐBÀ:À,ÈaÐPÖQñ "ð ‡M�Mò	
ôð 
�‰��Ø
�‰Ð1°+°¸bÐAÔBØ
�‰�WÔà�Y‰Y�[�[Ø�L‰LÐ:Ô;à!Ó-ä%.¨{×%;‘M�AØ!3Õ!?�Jà—L‘LÐ#CÀJÀ<Ð!PÔQØ—L‘LÐ#HÈÈQÍÈÈqÐ!QÔRØ—L‘LÐ#7¸
°|À9Ð!MÔNØŸ™Ÿ�ØŸ™Ø6°z°lÐBgÐhôð Ÿ™Ð%TÔUØŸ™Ð%;Ô<ØŸY™YŸ[�[ØŸL™LØ `ôð ŸL™L¨Ô5÷	 )ð
 Ÿ™ SÔ)ØŸ™Øôð Ÿ™ØPôð Ÿ™Ø+¨A°­E¨7Ð2[Ð\ô÷% %ð* —L‘L Ô%Ø—J‘J—Lñ9 &<ð< —
‘
”Ø—‘ÐAÔBÜœs ;Ó/Ö0�AØ—M‘Mà0°°Qµ°°rÐ:ØjÐklÐopÕkpÐjqÐqsÐtðöñ 1ð —‘ÐCÔDÜœs ;Ó/Ö0�AØ—L‘LÐ#AÀ!ÀaÅ%ÀÈÐ!JÖKñ 1ð �L‰LÐ6Ô7Ü!*¨;Ö!7‘�Ø—‘à,¨Q°­U¨GÐ3VÐWØ.¨q°1­u¨gÐ5hÐiØ$ Q¨¥U GÐ+OÐPZÈ|Ð[]Ð^Ø5°a¸!µe°W¸BÐ?Ø7¸¸A½°w¸bÐAØ)Ø ˜~Ð-?À
¸|È4ÐPØ  A¥˜wÐ&9Ð:ð	öñ "8ð "Ó-Ø—‘Ð2Ô3Üœs ;Ó/Ö0�AØ—L‘LØFÀqÈ1ÅuÀgÈ[ÐYôð —L‘LØ  A¥˜wÐ&:¸1¸q½5¸'ÐATÐUVÐYZÕUZÐT[Ð[cÐdeÐhiÕdiÐcjÐjuÐvöñ	 1ð —‘ÐEÔFÜœs ;Ó/Ö0�AØ—M‘Mà0°°Qµ°°rÐ:ØlÐmnÐqrÕmrÐlsÐsxÐyðöñ 1ð —‘Ð4Ô5Üœs ;Ó/Ö0�AØ—L‘LØ7¸¸A½°wÐ>SÐTUÐXYÕTYÐSZÐZhÐkôð —L‘LØ5°a¸!µe°WÐ<LÈQÐQRÍUÈGÐSYÐ\öñ	 1ð �L‰L˜Ô%÷y ð| 	�‰à5ðô	
ð
 �Y‰Y�[�[Ø�L‰LÐKÔLØ�L‰L˜Ô%÷ ð 	�‰�SÔ÷W 
ðX ‡L�L�Ôà�;‰;‹=Ð÷s )Ÿ[˜[ú÷ %Ÿ˜ú÷ �[ú÷F �[ú÷O 
�úsp   Ã(?X-Ä'BX	Æ4AW3È#WÈ'AW3É>K
X	Õ2X-Õ:#X	ÖX-×W0×*	W3×3X×>	X	ØXØX-ØX*Ø%X-Ø-X=	c                ó^   € V ^8„  d   QhR\         R\        \         ,          R\         R\         /# )r   r   r   r	   r
   )r   r   )r   s   "r   r   r   ¿   s-   € ÷ /ñ /¤ð /´4¼µ9ð /Ì3ð /ÔSVñ /r   c                 óÜ  € \        4       pVP                  . RO4       ^ RIHp VP                  '       d   VP                  R4       VR8X  dD   \        P                  P                  '       d   VP                  R4       MVP                  R4       VP                  4        V F  pVP                  RV  RV R24       K  	  VP                  R	4       VR8X  dE   \        P                  P                  '       d   VP                  R
4       M*VP                  R4       MVR8X  d   VP                  R4       RP                  V4      pVP                  RV R24       VR8X  dd   \        P                  P                  '       d"   VP                  R4       VP                  4       # VP                  R4        VP                  4       # VR8X  d   VP                  R4       VP                  4       # )ú$cmake_minimum_required(VERSION 3.10))Útest_configszfind_package(Torch REQUIRED)r   zfind_package(hip REQUIRED)zfind_package(CUDA REQUIRED)zadd_subdirectory(r   z/)z
add_executable(main main.cpp)z0target_compile_definitions(main PRIVATE USE_HIP)z1target_compile_definitions(main PRIVATE USE_CUDA)Úxpuz0target_compile_definitions(main PRIVATE USE_XPU)Ú z)target_link_libraries(main PRIVATE torch Ú)z-target_link_libraries(main PRIVATE hip::host)z:target_link_libraries(main PRIVATE cuda ${CUDA_LIBRARIES})z2target_link_libraries(main PRIVATE sycl ze_loader))r.   zproject(TestProject)r   zset(CMAKE_CXX_STANDARD 20)r   )r   r   Útorch._inductor.configr/   Úuse_libtorchr    r   r   r   r!   Újoinr&   )r   r   r	   r'   r/   r(   Ú
model_libss   &&&    r   Ú_get_make_filer7   ¿   s‰  € Ü	Ó	€Bà‡M�Mò	
ôõ 4à× × Ð Ø
�‰Ð3Ô4à�fÔÜ�=‰=××ÐØ�L‰LÐ5Õ6à�L‰LÐ6Ô7à‡J�J„LÛ!ˆ
Ø
�‰Ð(¨¨Ð6HÈÈÐTVÐWÖXñ "ð ‡L�LÐ2Ô3Ø�fÔÜ�=‰=××ÐØ�L‰LÐKÕLà�L‰LÐLÕMØ	˜Ô	Ø
�‰ÐGÔHà—‘˜+Ó&€JØ‡L�LÐ<¸Z¸LÈÐJÔKà�fÔÜ�=‰=××ÐØ�L‰LÐHÔIð
 �;‰;‹=Ðð �L‰LÐUÕVð �;‰;‹=Ðð 
˜Ô	Ø
�‰ÐIÔJØ�;‰;‹=Ðr   )
Úloggingr   Útorch._inductor.utilsr   Ú__all__Ú	getLoggerÚ__name__Úloggerr+   r7   © r   r   Ú<module>r?      s1   ðÛ ã Ý 0ð €Ø	×	Ò	˜8Ó	$€õq÷h/r   