wafer-core 0.1.32__py3-none-any.whl → 0.1.34__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wafer_core/lib/trace_compare/__init__.py +9 -22
- wafer_core/lib/trace_compare/analyzer.py +160 -584
- wafer_core/lib/trace_compare/classifier.py +18 -321
- wafer_core/lib/trace_compare/fusion_analyzer.py +753 -329
- wafer_core/lib/trace_compare/loader.py +220 -413
- wafer_core/targets/__init__.py +21 -47
- wafer_core/utils/kernel_utils/defense.py +1 -813
- wafer_core/utils/kernel_utils/targets/config.py +24 -8
- {wafer_core-0.1.32.dist-info → wafer_core-0.1.34.dist-info}/METADATA +1 -1
- {wafer_core-0.1.32.dist-info → wafer_core-0.1.34.dist-info}/RECORD +11 -11
- {wafer_core-0.1.32.dist-info → wafer_core-0.1.34.dist-info}/WHEEL +0 -0
|
@@ -346,17 +346,25 @@ class RunPodTarget:
|
|
|
346
346
|
ncu_available: bool = False
|
|
347
347
|
|
|
348
348
|
def __post_init__(self) -> None:
|
|
349
|
-
"""Validate configuration
|
|
349
|
+
"""Validate configuration."""
|
|
350
|
+
from wafer_core.auth import get_api_key
|
|
350
351
|
|
|
351
|
-
API key availability is checked at provision/query time, not here —
|
|
352
|
-
loading a spec from TOML should not require credentials.
|
|
353
|
-
"""
|
|
354
352
|
assert self.name, "name cannot be empty"
|
|
355
353
|
assert self.ssh_key, "ssh_key cannot be empty"
|
|
356
354
|
assert self.gpu_count > 0, "gpu_count must be positive"
|
|
357
355
|
assert self.provision_timeout > 0, "provision_timeout must be positive"
|
|
358
356
|
assert self.eval_timeout > 0, "eval_timeout must be positive"
|
|
359
357
|
|
|
358
|
+
# Check for API key (env var or ~/.wafer/auth.json)
|
|
359
|
+
api_key = get_api_key("runpod")
|
|
360
|
+
if not api_key:
|
|
361
|
+
raise ValueError(
|
|
362
|
+
"RunPod API key not found.\n"
|
|
363
|
+
"Set WAFER_RUNPOD_API_KEY environment variable, or run:\n"
|
|
364
|
+
" wafer auth login runpod\n"
|
|
365
|
+
"Get your API key from: https://runpod.io/console/user/settings"
|
|
366
|
+
)
|
|
367
|
+
|
|
360
368
|
|
|
361
369
|
@dataclass(frozen=True)
|
|
362
370
|
class LocalTarget:
|
|
@@ -460,16 +468,24 @@ class DigitalOceanTarget:
|
|
|
460
468
|
ncu_available: bool = False
|
|
461
469
|
|
|
462
470
|
def __post_init__(self) -> None:
|
|
463
|
-
"""Validate configuration
|
|
471
|
+
"""Validate configuration."""
|
|
472
|
+
from wafer_core.auth import get_api_key
|
|
464
473
|
|
|
465
|
-
API key availability is checked at provision/query time, not here —
|
|
466
|
-
loading a spec from TOML should not require credentials.
|
|
467
|
-
"""
|
|
468
474
|
assert self.name, "name cannot be empty"
|
|
469
475
|
assert self.ssh_key, "ssh_key cannot be empty"
|
|
470
476
|
assert self.provision_timeout > 0, "provision_timeout must be positive"
|
|
471
477
|
assert self.eval_timeout > 0, "eval_timeout must be positive"
|
|
472
478
|
|
|
479
|
+
# Check for API key (env var or ~/.wafer/auth.json)
|
|
480
|
+
api_key = get_api_key("digitalocean")
|
|
481
|
+
if not api_key:
|
|
482
|
+
raise ValueError(
|
|
483
|
+
"DigitalOcean API key not found.\n"
|
|
484
|
+
"Set WAFER_AMD_DIGITALOCEAN_API_KEY environment variable, or run:\n"
|
|
485
|
+
" wafer auth login digitalocean\n"
|
|
486
|
+
"Get your API key from: https://cloud.digitalocean.com/account/api/tokens"
|
|
487
|
+
)
|
|
488
|
+
|
|
473
489
|
|
|
474
490
|
# Union type for target configs
|
|
475
491
|
TargetConfig = (
|
|
@@ -319,17 +319,17 @@ wafer_core/lib/rocprofiler/systems/run/profiler.py,sha256=aiQLsDnfQHSeCM5zLnO4Vl
|
|
|
319
319
|
wafer_core/lib/rocprofiler/systems/sample/__init__.py,sha256=31rNmLPQ7OVhvlOEEOwPKgk8_qrCidj6AmzDXexQJ_o,288
|
|
320
320
|
wafer_core/lib/rocprofiler/systems/sample/profiler.py,sha256=CYZPTzNXd48LoCfmY6h_5RSYEdWYccuv3-t4YncHJLE,7384
|
|
321
321
|
wafer_core/lib/trace_compare/PERFORMANCE.md,sha256=jkJh7ApZi8H7NKTcz8v0LNtwSFtIUqY88e3QbL749ww,3823
|
|
322
|
-
wafer_core/lib/trace_compare/__init__.py,sha256=
|
|
322
|
+
wafer_core/lib/trace_compare/__init__.py,sha256=G5vmiQnuweiF9vjK1FC4ZIy-tzuHiaLMs7QBnir8OJw,800
|
|
323
323
|
wafer_core/lib/trace_compare/aligner.py,sha256=1S8Ob3RaEsIjN0HdqEx0yGsW5uf_lMrJVSH_MnZhKok,13788
|
|
324
|
-
wafer_core/lib/trace_compare/analyzer.py,sha256=
|
|
324
|
+
wafer_core/lib/trace_compare/analyzer.py,sha256=o0SI1PsehpgxeUPQEB9708W_Q_ILiO5apgqVLe2xE8A,14541
|
|
325
325
|
wafer_core/lib/trace_compare/api.py,sha256=JSRTcd7eZK1Z8l18TFEiA5A8ENJS1TMz7oIiw1KBbAs,8796
|
|
326
326
|
wafer_core/lib/trace_compare/architecture.py,sha256=8bqlAJQeJLBHblyXvFV-w55PIKiVQDPjDQZ8Jx4tuGg,2110
|
|
327
|
-
wafer_core/lib/trace_compare/classifier.py,sha256=
|
|
327
|
+
wafer_core/lib/trace_compare/classifier.py,sha256=sE1K007GVk_Up2g59SVUIZ7BThf0yHNjGsZ9AyM_Ah8,6028
|
|
328
328
|
wafer_core/lib/trace_compare/formatter.py,sha256=GNrCZ45ueBN05CEXjOtTuKvTI8z-g-ZZFil-ni3sWVY,37962
|
|
329
|
-
wafer_core/lib/trace_compare/fusion_analyzer.py,sha256=
|
|
329
|
+
wafer_core/lib/trace_compare/fusion_analyzer.py,sha256=eJba8VdHrz3IVlo4oAhFRRQLzj3I3KS-6otrFznooXg,38459
|
|
330
330
|
wafer_core/lib/trace_compare/kernel_registry.yaml,sha256=0-knXwsF3pR1x1JdIz-aWaH-5xDgTylh53E47Kf6nHo,9808
|
|
331
331
|
wafer_core/lib/trace_compare/layer_segmentation.py,sha256=kI_Y1e9nrKZfdwfcrGo4h7gpMxqXI_xkgXk46zuFen4,4642
|
|
332
|
-
wafer_core/lib/trace_compare/loader.py,sha256=
|
|
332
|
+
wafer_core/lib/trace_compare/loader.py,sha256=z3gO7CV8AxZloWUCA0aA3pwkNiEnEobdLQBAII41cGY,16129
|
|
333
333
|
wafer_core/lib/trace_compare/same_kernel_analyzer.py,sha256=sp81NJGVJeYdAfRQRgMbB5HcGTOneF1Rau3rbLPfpv4,3489
|
|
334
334
|
wafer_core/lib/trace_compare/warnings.py,sha256=B1HxFt-v1mDqLT2aD5bSm1Yn88bfPYnM-wui0WBF3xM,3548
|
|
335
335
|
wafer_core/lib/tracelens/__init__.py,sha256=AkHdmOnKlBO4RpsAqVVGe7MOfv6E6uhEaC_iKrYeMPI,2002
|
|
@@ -597,7 +597,7 @@ wafer_core/sessions/__init__.py,sha256=Ybps5QclZShAELoW9bva4w6OCNrcBf8vd9nGDjYfQ
|
|
|
597
597
|
wafer_core/sessions/agent.py,sha256=4-Q-NG_xm07FFq7hB8mjxW38nt2_S0QpwCYkPOoGRxA,5946
|
|
598
598
|
wafer_core/sessions/dtypes.py,sha256=K6nOjvL6sjCGY7GTtdEygf1IZY_18R9YkHGqFyMd8wY,589
|
|
599
599
|
wafer_core/sessions/hooks.py,sha256=A-txm6ufnRGQCdtP3vwh7oEOdlLN9Tv0XsjORMihuAI,4295
|
|
600
|
-
wafer_core/targets/__init__.py,sha256=
|
|
600
|
+
wafer_core/targets/__init__.py,sha256=sHndC7AAOaHXlrmDXFLB53a5Y8DBjuyqS6nwsO2nj-Y,1728
|
|
601
601
|
wafer_core/targets/digitalocean.py,sha256=cvoYpYjtSyy5t2lQAPi7ERruuuibronah_ivOiduAHQ,16550
|
|
602
602
|
wafer_core/targets/pool.py,sha256=TeNE9rpr67OsGtbxniYpr9Cb3wosnf_e3kTLBbwtDok,5434
|
|
603
603
|
wafer_core/targets/probe.py,sha256=rzF8tiq5GxkMR3jhryTOW0GMcoHtrN67wmHlGJuBTv8,3038
|
|
@@ -686,7 +686,7 @@ wafer_core/utils/remote_execution.py,sha256=z7nLiOgmDiM_VmElLnT2LF-aKNeeKFYjXigT
|
|
|
686
686
|
wafer_core/utils/submission_selection.py,sha256=LucdMTAbkqZA-GitSb3ZJ2pAeJ36wKqt5cTeS8xuAQ4,5655
|
|
687
687
|
wafer_core/utils/kernel_utils/__init__.py,sha256=NsfKpbfpIsfupWIpIjWLGCjGAVqaONiwiWil5zXbrRc,2015
|
|
688
688
|
wafer_core/utils/kernel_utils/backends.py,sha256=t3wY73Y-pVc_wALNu_bPsaFkqJ2dp2pf38KQ5ofP_go,1143
|
|
689
|
-
wafer_core/utils/kernel_utils/defense.py,sha256
|
|
689
|
+
wafer_core/utils/kernel_utils/defense.py,sha256=7tbPHEKsrzmjn1eZmfc4vg6P2jjoqMggPl5BsJwerzY,19490
|
|
690
690
|
wafer_core/utils/kernel_utils/deployment.py,sha256=-tMb3qWmAoXHWCmmT7SQBH7KBKyyLP0e5Dk6lOrTPW8,55957
|
|
691
691
|
wafer_core/utils/kernel_utils/evaluate.py,sha256=1kxFNMl9VCXfKfk_BIiuA_zFfvDB1sl_feS2OEIJA1k,72346
|
|
692
692
|
wafer_core/utils/kernel_utils/gpu_validation.py,sha256=LRiDjW_xAK4fXf1Vw1aYHG54B1W0J6b5L0K6PXzM2tI,3759
|
|
@@ -697,7 +697,7 @@ wafer_core/utils/kernel_utils/task.py,sha256=XcmKxKUWh5It6nX3zGqj77tWgA32uPfQMqN
|
|
|
697
697
|
wafer_core/utils/kernel_utils/test_reward_hacks.py,sha256=Feo7_H2U4Uy3ZkcZDIDl9j0OAX3Z_wfQ8JQpjTiVg_4,3732
|
|
698
698
|
wafer_core/utils/kernel_utils/utils.py,sha256=uDZoJDxh07hJeLNlPdKN2vgB15pqIr1LbXf0YIBHU4E,43056
|
|
699
699
|
wafer_core/utils/kernel_utils/targets/__init__.py,sha256=4NwRLsuJ__S4xKAfda4Ag82C5MQ3Qio-4xA5S-mQGlU,2067
|
|
700
|
-
wafer_core/utils/kernel_utils/targets/config.py,sha256=
|
|
700
|
+
wafer_core/utils/kernel_utils/targets/config.py,sha256=V587DYkisEFoWwkmLQUW6I0mXkMEwA52sM7ZINslkK8,20625
|
|
701
701
|
wafer_core/utils/kernel_utils/targets/execution.py,sha256=bZuNXCo0sIdD6hFhetLPrtDC-zMSiIsAx_aml49VVL0,15033
|
|
702
702
|
wafer_core/utils/kernel_utils/targets/selection.py,sha256=5I_RG_7cfhq7uaeR28meC2EeNNKssFsK-Tc3QFG6Ze0,3590
|
|
703
703
|
wafer_core/utils/modal_execution/__init__.py,sha256=jkVqYOLzCT5K73N9Od0UIUsx-99A0m6bpDrxfyXxQZ8,945
|
|
@@ -705,6 +705,6 @@ wafer_core/utils/modal_execution/modal_app.py,sha256=VfS2cX8gHtnlPXemmMcEwDPeQdh
|
|
|
705
705
|
wafer_core/utils/modal_execution/modal_config.py,sha256=7cGX9TGqilQ3qxI3OFGXV5orjtyRU-PEDOJ4vP2oxno,4421
|
|
706
706
|
wafer_core/utils/modal_execution/modal_execution.py,sha256=gChjnV6jqA3A7IRP3DfvV5cSfm_MN0X4f7JZufXgdZE,24594
|
|
707
707
|
wafer_core/utils/modal_execution/test_modal.py,sha256=_jqou_hrLs1Daf1590Pnb0a_lXMMa2rczAPpW9HpoNQ,8153
|
|
708
|
-
wafer_core-0.1.
|
|
709
|
-
wafer_core-0.1.
|
|
710
|
-
wafer_core-0.1.
|
|
708
|
+
wafer_core-0.1.34.dist-info/METADATA,sha256=AWz-qaQb3tt8CY3cAG1_IHn1xWhfDfiw4rx9hFTq3UU,1477
|
|
709
|
+
wafer_core-0.1.34.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
710
|
+
wafer_core-0.1.34.dist-info/RECORD,,
|
|
File without changes
|