Ë ¹K i% ãóB—dd„d„d„d„dœiZdddd œZd d d d œZd „Zd„Zy)ÚCUDAc ó—d|dz z S)Ng¸’2¼Cé©©ÚwidthÚkwargss ú[/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/triton/profiler/specs.pyúr s€ ¨%°!©)Ñ 4€óc ó—d|dz z S)Ng€µbÆòBrrrs r r r s€ °%¸!±)Ñ <€r c ó0—|dz |zdz dzdz|dz z S)NérgxÇ:Aiég¢”mBrr©rÚnum_smsÚ clock_raters r r r s-€°wÀ±}ÀzÑ7QÐU_Ñ7`ÐcgÑ7gÐkoÑ6oØ ‰ñ6€r c ó*—|dz|dz zdz|dz z S)Ni@ç@@g€„.Arrrs r r r s'€°gÀ±oÈÐVYÑIYÑ6ZÐ]`Ñ6`ÐejÐmnÑenÑ5o€r )Ú80Ú89Ú90Ú100gèvH‡Bg xH“Bg¢”B)Úgfx90aÚgfx942Úgfx950iii cóÈ—|dk(rt||z|zdz|dz z S|tvrtd|›«‚|t|vrtd|›«‚t||}||||¬«S)aÎ Calculate the maximum FLOPS for a given device type and width. Args: device_type (str): The type of device (e.g., "CUDA", "HIP"). arch (str): The architecture of the device (e.g., "80", "90"). width (int): The width in bits. num_sms (int): The number of streaming multiprocessors. clock_rate (float): The clock rate in GHz. Returns: float: The maximum FLOPS for the given device type and width. ÚHIPrrzUnsupported device type: zUnsupported architecture: )rr)Úamd_fp8_flops_by_archÚflops_by_deviceÚ ValueError)Ú device_typeÚarchrrrÚ flops_funcs r Ú max_flopsr#s‰€ðeÒÜ$ TÑ*¨WÑ4°zÑAÀCÑGÈ5ÐSTÉ9ÑUÐUàœ/Ñ)ÜÐ4°[°MÐBÓCÐCà ”? ;Ñ/Ñ/ÜÐ5°d°VÐ<Ó=Ð=ä  Ñ-¨dÑ3€Já e W¸Ô DÐDr cóH—|dk(rd|z|zdzdz S|dk(sJ‚t|S)a Calculate the maximum bytes per second for a given bus width and memory clock rate. Args: bus_width (int): The bus width in bits. memory_clock_rate (float): The memory clock rate in GHz. Returns: float: The maximum bytes per second. rérrr)Úamd_bps_by_arch)r r!Ú bus_widthÚmemory_clock_rates r Úmax_bpsr)6s?€ðfÒØ9‰}Ð0Ñ0°3Ñ6¸Ñ:Ð:à˜eÒ#Ð#Ð#ܘtÑ$Ð$r N)rr&rr#r)rr r úr*sQðà á4á<ñ ñ pñ ð €ðØØñ€ð$(°4À4ÑHÐòEó8%r