wafer-core 0.1.18__tar.gz → 0.1.39__tar.gz
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-0.1.18 → wafer_core-0.1.39}/PKG-INFO +3 -1
- {wafer_core-0.1.18 → wafer_core-0.1.39}/pyproject.toml +7 -2
- {wafer_core-0.1.18 → wafer_core-0.1.39}/pyproject.toml.bak +6 -1
- wafer_core-0.1.39/tests/test_reward_hack_defenses.py +185 -0
- wafer_core-0.1.39/tests/trace_compare/__init__.py +1 -0
- wafer_core-0.1.39/tests/trace_compare/benchmark_trace_compare.py +183 -0
- wafer_core-0.1.39/tests/trace_compare/expected_output_amd_llama.json +32942 -0
- wafer_core-0.1.39/tests/trace_compare/generate_golden_file.py +65 -0
- wafer_core-0.1.39/tests/trace_compare/test_trace_compare_correctness.py +506 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/auth.py +38 -6
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/environments/coding.py +4 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/PERFORMANCE.md +148 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/__init__.py +32 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/aligner.py +376 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/analyzer.py +339 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/api.py +225 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/architecture.py +77 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/classifier.py +192 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/formatter.py +951 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/fusion_analyzer.py +931 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/kernel_registry.yaml +349 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/layer_segmentation.py +114 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/loader.py +442 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/same_kernel_analyzer.py +119 -0
- wafer_core-0.1.39/wafer_core/lib/trace_compare/warnings.py +99 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/problem_config.py +3 -3
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/_logging/__init__.py +5 -1
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/_logging/logging_config.py +95 -3
- wafer_core-0.1.39/wafer_core/rollouts/_logging/sample_handler.py +66 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/__init__.py +114 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/app.py +809 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/console.py +291 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/renderer.py +210 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/spinner.py +73 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/terminal.py +489 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/text.py +470 -0
- wafer_core-0.1.39/wafer_core/rollouts/_pytui/theme.py +241 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/rlm_01_01.py +2 -2
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/dtypes.py +22 -3
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/localfs.py +50 -2
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/evaluation.py +157 -176
- wafer_core-0.1.39/wafer_core/rollouts/progress_app.py +395 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt.py +14 -4
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/anthropic.py +35 -3
- wafer_core-0.1.39/wafer_core/rollouts/skills.py +176 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/templates/base.py +3 -0
- wafer_core-0.1.39/wafer_core/rollouts/tui/DESIGN.md +290 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/monitor.py +64 -20
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/upload.py +45 -0
- wafer_core-0.1.39/wafer_core/targets/pool.py +181 -0
- wafer_core-0.1.39/wafer_core/targets/probe.py +113 -0
- wafer_core-0.1.39/wafer_core/targets/providers/__init__.py +46 -0
- wafer_core-0.1.39/wafer_core/targets/providers/baremetal.py +72 -0
- wafer_core-0.1.39/wafer_core/targets/providers/digitalocean.py +164 -0
- wafer_core-0.1.39/wafer_core/targets/providers/runpod.py +250 -0
- wafer_core-0.1.39/wafer_core/targets/reconcile.py +90 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/targets/runpod.py +154 -15
- wafer_core-0.1.39/wafer_core/targets/spec_store.py +200 -0
- wafer_core-0.1.39/wafer_core/targets/state_cache.py +150 -0
- wafer_core-0.1.39/wafer_core/targets/types.py +141 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/__init__.py +7 -0
- wafer_core-0.1.39/wafer_core/tools/compile/__init__.py +30 -0
- wafer_core-0.1.39/wafer_core/tools/compile/compiler.py +314 -0
- wafer_core-0.1.39/wafer_core/tools/compile/modal_compile.py +359 -0
- wafer_core-0.1.39/wafer_core/tools/compile/tests/__init__.py +1 -0
- wafer_core-0.1.39/wafer_core/tools/compile/tests/test_compiler.py +675 -0
- wafer_core-0.1.39/wafer_core/tools/compile/tests/test_data/utils.cuh +10 -0
- wafer_core-0.1.39/wafer_core/tools/compile/tests/test_data/vector_add.cu +7 -0
- wafer_core-0.1.39/wafer_core/tools/compile/tests/test_data/with_header.cu +9 -0
- wafer_core-0.1.39/wafer_core/tools/compile/tests/test_modal_integration.py +326 -0
- wafer_core-0.1.39/wafer_core/tools/compile/types.py +117 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/__init__.py +73 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/analyzer.py +174 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/client.py +196 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/codegen.py +246 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/dtypes.py +217 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/executor.py +360 -0
- wafer_core-0.1.39/wafer_core/tools/dispatch_baseline/roofline.py +165 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/grep_tool.py +56 -29
- wafer_core-0.1.39/wafer_core/tools/skill_tool.py +64 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/backend.py +3 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/static_checker.py +175 -3
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/targets/config.py +68 -24
- wafer_core-0.1.39/wafer_core/utils/kernel_utils/test_reward_hacks.py +140 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/modal_execution/modal_app.py +14 -27
- wafer_core-0.1.18/wafer_core/rollouts/events.py +0 -240
- wafer_core-0.1.18/wafer_core/rollouts/progress_display.py +0 -476
- wafer_core-0.1.18/wafer_core/rollouts/tui/DESIGN.md +0 -154
- wafer_core-0.1.18/wafer_core/utils/event_streaming.py +0 -63
- {wafer_core-0.1.18 → wafer_core-0.1.39}/.gitignore +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/README.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/run_cuda_grep.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/test_gpu_e2e.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/perfetto/README.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/perfetto/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/perfetto/test_perfetto_integration.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/perfetto/test_perfetto_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/perfetto/test_trace_manager.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/perfetto/test_trace_processor.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_async_ssh_upload.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_capture_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_config.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_eval_interrupt_resume.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_isa_analysis_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_kernel_scope.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_nested_progress.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_rocprof_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_rocprofiler_compute.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_roofline.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_sandbox.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/test_tracelens_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/tracelens/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/tests/tracelens/test_finder.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/uv.lock +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/async_ssh.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/config/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/config/loader.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/config/schema.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/environments/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/environments/gpumode.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/gpu.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/gpu_detect.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/amdgcn/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/amdgcn/analyzer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/amdgcn/instruction_db.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/amdgcn/parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/amdgcn/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/api.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/correlation/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/correlation/mapper.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/llvm_ir/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/llvm_ir/analyzer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/llvm_ir/parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/llvm_ir/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/metrics/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/metrics/occupancy.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/targets/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/targets/specs.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/ttgir/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/ttgir/analyzer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/ttgir/parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/kernel_scope/ttgir/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/analysis.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/discovery.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/export.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/extraction.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/main.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/nsys/parsing.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/perfetto/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/perfetto/build_trace_processor.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/perfetto/perfetto_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/perfetto/trace_manager.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/perfetto/trace_processor.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/analyzer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/finder.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/VERSION +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/__main__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/analysis_base.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/analysis_webui.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/default.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/favicon.ico +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/css/font-awesome.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/css/font-awesome.min.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/FontAwesome.otf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/bordered-pulled.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/core.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/fixed-width.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/font-awesome.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/icons.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/larger.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/list.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/mixins.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/path.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/rotated-flipped.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/spinning.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/stacked.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/variables.less +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_bordered-pulled.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_core.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_fixed-width.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_icons.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_larger.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_list.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_mixins.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_path.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_rotated-flipped.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_spinning.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_stacked.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_variables.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/font-awesome.scss +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/animation.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-codes.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-embedded.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-ie7-codes.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-ie7.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.eot +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.svg +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.woff +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/layout.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/magnific-popup.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/assets/media-queries.css +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/config.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/launcher.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0000_top_stats.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0100_system_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0200_system-speed-of-light.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0300_mem_chart.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0500_command-processor.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0600_shader-processor-input.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0700_wavefront-launch.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1000_compute-unit-instruction-mix.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1100_compute-unit-compute-pipeline.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1200_lds.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1300_instruction-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1400_constant-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1500_TA_and_TD.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1600_L1_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1700_L2_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1800_L2_cache_per_channel.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/2100_pc_sampling.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0000_top_stats.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0100_system_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0200_system-speed-of-light.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0300_mem_chart.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0400_roofline_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0500_command-processor.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0600_shader-processor-input.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0700_wavefront-launch.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1000_compute-unit-instruction-mix.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1100_compute-unit-compute-pipeline.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1200_lds.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1300_instruction-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1400_constant-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1500_TA_and_TD.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1600_L1_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1700_L2_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1800_L2_cache_per_channel.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/2100_pc_sampling.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0000_top_stats.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0100_system_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0200_system-speed-of-light.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0300_mem_chart.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0400_roofline_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0500_command-processor.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0600_shader-processor-input.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0700_wavefront-launch.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1000_compute-unit-instruction-mix.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1100_compute-unit-compute-pipeline.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1200_lds.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1300_instruction-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1400_constant-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1500_TA_and_TD.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1600_L1_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1700_L2_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1800_L2_cache_per_channel.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/2100_pc_sampling.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0000_top_stats.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0100_system_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0200_system-speed-of-light.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0300_mem_chart.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0400_roofline_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0500_command-processor.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0600_shader-processor-input.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0700_wavefront-launch.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1000_compute-unit-instruction-mix.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1100_compute-unit-compute-pipeline.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1200_lds.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1300_instruction-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1400_constant-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1500_TA_and_TD.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1600_L1_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1700_L2_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1800_L2_cache_per_channel.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/2100_pc_sampling.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0000_top_stats.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0100_system_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0300_mem_chart.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0400_roofline_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0500_command-processor.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0600_shader-processor-input.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0700_wavefront-launch.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1000_compute-unit-instruction-mix.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1100_compute-unit-compute-pipeline.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1200_lds.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1300_instruction-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1400_constant-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1500_TA_and_TD.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1600_L1_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1700_L2_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1800_L2_cache_per_channel.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/2100_pc_sampling.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0000_top_stats.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0100_system_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0200_system-speed-of-light.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0300_mem_chart.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0400_roofline_info.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0500_command-processor.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0600_shader-processor-input.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0700_wavefront-launch.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1000_compute-unit-instruction-mix.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1100_compute-unit-compute-pipeline.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1200_lds.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1300_instruction-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1400_constant-cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1500_TA_and_TD.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1600_L1_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1700_L2_cache.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1800_L2_cache_per_channel.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/2100_pc_sampling.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/panel_config_template.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_base.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx908.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx90a.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx940.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx941.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx942.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx950.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/db_connector.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/file_io.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/gui.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/gui_components/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/gui_components/header.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/gui_components/memchart.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/kernel_name_shortener.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/logger.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/mem_chart.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/mi_gpu_spec.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/mi_gpu_spec.yaml +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/roofline.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/roofline_calc.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/schema.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/specs.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/tty.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui/utils/utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/gui_server.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/profiler.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/compute/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/sdk/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/sdk/analyzer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/sdk/finder.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/sdk/parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/sdk/profiler.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/sdk/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/avail/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/avail/query.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/finder.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/instrument/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/instrument/profiler.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/parsers/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/parsers/json_parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/parsers/text_parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/run/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/run/analyzer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/run/profiler.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/sample/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/sample/profiler.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/rocprofiler/systems/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/tracelens/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/tracelens/comparator.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/tracelens/finder.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/tracelens/report_generator.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/lib/tracelens/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/logging/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/logging/bridge.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/logging/color_formatter.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/logging/json_formatter.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/logging/logging_config.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/remote_env.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/remote_jobs.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/retry.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/__main__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/_logging/color_formatter.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/_logging/json_formatter.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/_rate_limit.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/_retry.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/README.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/base_preset.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/gpt_5_1_codex_04_04.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/gpt_5_2_03_03.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/loader.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/opus_4_01_01.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/sonnet_4_02_02.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agent_presets/sonnet_4_subagent_03_02.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/agents.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/cli.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/cli_agents.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/config/README.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/config/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/config/base.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/config/loader.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/config/protocols.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/datasets/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/datasets/lichess_puzzles.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/deploy.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/docs/ASYNC_RUNTIME.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/_formatting.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/_subprocess.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/ask_user.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/base.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/binary_search.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/browsing.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/calculator.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/chess_puzzle.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/compose.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/cuda_grep.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/git_worktree.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/handoff.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/no_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/oracle.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/repl.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/screenspot.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/swe_grep.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/environments/terminal_bench.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/eval_helpers.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/config_all_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/config_grep_glob.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/config_search_only.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/cuda_questions.jsonl +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/eval_cuda_grep.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/examples/eval/cuda_grep/scoring.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/export.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/feedback.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/fingerprint.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/DESIGN.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/README.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/REFACTOR_PLAN.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/UI_IMPROVEMENTS.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/__main__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/dev.sh +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/index.html +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/index_old.html +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/run.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontend/server.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/headless_json.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/json_frontend.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/none.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/protocol.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/runner.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/textual_frontend.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/INTEGRATION.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/README.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/REFACTOR_DESIGN.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/TUI_TODO.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/agent_renderer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/assistant_message.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/error_display.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/input.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/loader.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/loader_container.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/markdown.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/question_selector.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/spacer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/status_line.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/system_message.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/text.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/tool_execution.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/components/user_message.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/control_flow_types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/demo.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/example_usage.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/interactive_agent.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/oauth.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/slash_commands.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/terminal.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/test_rendering.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/theme.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/tui.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui/utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/frontends/tui_frontend.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/import_cc.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/config.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/example.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/flex_backend.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/layer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/mask.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/attention/protocol.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/backends/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/backends/generate.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/backends/tokenize.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/cache/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/cache/paged.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/cache/protocol.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/cache/radix.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/context.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/engine.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/sampling.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/scheduler.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/testing.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/inference/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/integrations/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/logging_utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/models.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/paths.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/pipeline.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/progress.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/adapter.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/adapters/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/adapters/system_prompt.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/adapters/system_user_prompt.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/adapters/terminal_bench.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/evaluation.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/evolutionary.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/formatting.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/operations.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/reflective.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/state.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/prompt_optimization/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/base.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/google.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/openai_completions.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/openai_responses.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers/sglang.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/providers.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/remote.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/scoring.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/search.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/slice.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/store.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/templates/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/templates/loader.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tests/test_slice.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/decorator.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/analysis_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/config.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/configs/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/configs/qwen3_0_6b.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/configs/qwen3_next_80b.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_mask.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_qwen.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_qwen3_next.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_sdpa.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_swa.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_toolkit.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/debug_with_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/explore_gemma.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/explore_qwen.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/explore_qwen3_dense.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/explore_qwen3_next.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/llama_functional.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/qwen3_next_functional.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/qwen_functional.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/test_llama.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/test_qwen.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/test_template.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/trace_hf.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/functional_extractor/verify.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tools/oracle.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/agent_integration.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/fsdp.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/jax_backend.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/protocol.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/pytorch.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/pytorch_factory.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/torch_func.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/backends/torchax_backend.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/datasets/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/datasets/data_buffer.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/datasets/dataset_loaders.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/datasets/sft.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/distributed_utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/filters.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/grpo.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/loops/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/loops/rl_loop.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/loops/sft_loop.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/losses.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/metrics.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/rollout_gen/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/rollout_gen/async_rollout_manager.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/rollout_gen/rollout_generation.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/rollout_gen/rollout_manager.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/weight_sync.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/training/worker.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/transform_messages.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/__main__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/demo.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/remote_runner.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/terminal.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/rollouts/tui/traces.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/roofline/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/roofline/analysis.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/roofline/gpu_specs.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sandbox/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sandbox/executor.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sandbox/landlock.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sandbox/policy.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sandbox/seatbelt.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sessions/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sessions/agent.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sessions/dtypes.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/sessions/hooks.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/ssh.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/targets/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/targets/digitalocean.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/BENCHMARKING.md +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/aggregation.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/core.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/dtypes.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/metrics.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/scoring.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/search.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/storage.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/streaming.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/tests/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/autotuner/tests/test_autotuner.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/bash_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/artifacts.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/context.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/core.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/dtypes.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/executor.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/capture_tool/metrics.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/edit_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/glob_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/read_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/file_tools/write_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/glob_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/grep_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/isa_analysis_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/isa_analysis_tools/isa_analysis_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/isa_analysis_tools/types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/nsys_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/nsys_tools/discovery.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/nsys_tools/models.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/nsys_tools/parser.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_compute_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_compute_tools/rocprof_compute_analyze_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_compute_tools/rocprof_compute_profile_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_sdk_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_sdk_tools/rocprof_sdk_analyze_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_sdk_tools/rocprof_sdk_profile_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_systems_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_instrument_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_profile_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_query_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_sample_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/tracelens_tools/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/tracelens_tools/tracelens_collective_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/tracelens_tools/tracelens_compare_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/tracelens_tools/tracelens_report_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/wafer_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/tools/write_kernel_tool.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/code_validation.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/environment_serialization.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/exceptions.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/execution_types.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/gpu_environment_utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/backends.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/defense.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/deployment.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/evaluate.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/gpu_validation.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/reference_cache.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/results.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/targets/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/targets/execution.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/targets/selection.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/task.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/kernel_utils/utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/modal_execution/__init__.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/modal_execution/modal_config.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/modal_execution/modal_execution.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/modal_execution/test_modal.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/ncu_profile_tools.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/path_utils.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/remote_execution.py +0 -0
- {wafer_core-0.1.18 → wafer_core-0.1.39}/wafer_core/utils/submission_selection.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wafer-core
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.39
|
|
4
4
|
Summary: Core utilities and environments for Wafer GPU kernel optimization
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: aiohttp>=3.9.0
|
|
@@ -15,12 +15,14 @@ Requires-Dist: dash-svg>=0.0.11
|
|
|
15
15
|
Requires-Dist: dash>=3.0.0
|
|
16
16
|
Requires-Dist: dnspython>=2.8.0
|
|
17
17
|
Requires-Dist: httpx>=0.25.0
|
|
18
|
+
Requires-Dist: ijson>=3.2.0
|
|
18
19
|
Requires-Dist: kaleido==0.2.1
|
|
19
20
|
Requires-Dist: markdownify>=0.11.0
|
|
20
21
|
Requires-Dist: matplotlib>=3.0.0
|
|
21
22
|
Requires-Dist: modal>=0.64.0
|
|
22
23
|
Requires-Dist: numpy>=1.17.5
|
|
23
24
|
Requires-Dist: openai>=1.0.0
|
|
25
|
+
Requires-Dist: orjson>=3.9.0
|
|
24
26
|
Requires-Dist: pandas~=3.0.0
|
|
25
27
|
Requires-Dist: paramiko>=3.0.0
|
|
26
28
|
Requires-Dist: paramiko>=3.4.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "wafer-core"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.39"
|
|
4
4
|
description = "Core utilities and environments for Wafer GPU kernel optimization"
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
6
|
dependencies = [
|
|
@@ -28,6 +28,8 @@ dependencies = [
|
|
|
28
28
|
"dash-bootstrap-components>=1.0.0", # UI components
|
|
29
29
|
"dash-svg>=0.0.11", # SVG components for Dash
|
|
30
30
|
"pandas~=3.0.0", # Data processing - allows 3.0.x patches
|
|
31
|
+
"orjson>=3.9.0", # Fast JSON parsing (10-30x faster than stdlib)
|
|
32
|
+
"ijson>=3.2.0", # Streaming JSON parser for progressive loading
|
|
31
33
|
"numpy>=1.17.5", # Numerical computing
|
|
32
34
|
"matplotlib>=3.0.0", # Additional plotting
|
|
33
35
|
"tabulate>=0.8.0", # Table formatting
|
|
@@ -98,13 +100,16 @@ ignore = [
|
|
|
98
100
|
]
|
|
99
101
|
|
|
100
102
|
[tool.ruff.lint.per-file-ignores]
|
|
101
|
-
"tests/**/*.py" = ["ANN201"] # Don't require return type annotations in tests
|
|
103
|
+
"tests/**/*.py" = ["ANN201", "ANN202"] # Don't require return type annotations in tests
|
|
102
104
|
"wafer_core/utils/modal_execution/*.py" = ["PLR0913"] # Modal RPC functions have many parameters
|
|
103
105
|
"wafer_core/utils/kernel_utils/targets/execution.py" = ["PLR0915"] # run_operation_on_target has Modal+SSH paths (71 statements)
|
|
104
106
|
"wafer_core/environments/gpumode.py" = ["ANN401"] # Environment.exec_tool uses Any for rollouts compatibility
|
|
105
107
|
"wafer_core/rollouts/providers/anthropic.py" = ["PLR0915", "PLR1702", "TRY002", "TRY004"] # Complex provider with streaming, retry logic, and try/finally cleanup
|
|
106
108
|
"wafer_core/sandbox/*.py" = ["ASYNC109", "ASYNC240"] # Sandbox uses subprocess timeout (not trio.fail_after) intentionally
|
|
107
109
|
"wafer_core/tools/bash_tool.py" = ["ASYNC109", "ASYNC221"] # Bash tool uses subprocess with timeout
|
|
110
|
+
"wafer_core/utils/kernel_utils/defense.py" = ["ANN002", "ANN003", "ANN202", "PLR0913"] # Defense functions use *args/**kwargs passthrough and have many config params
|
|
111
|
+
"wafer_core/utils/kernel_utils/test_reward_hacks.py" = ["ANN"] # Test fixture file, annotations add noise
|
|
112
|
+
"tests/test_reward_hack_defenses.py" = ["ANN001"] # Parametrized test args don't need annotations
|
|
108
113
|
|
|
109
114
|
[tool.ruff.lint.pylint]
|
|
110
115
|
max-args = 7 # Max function arguments (Tiger Style: few parameters)
|
|
@@ -28,6 +28,8 @@ dependencies = [
|
|
|
28
28
|
"dash-bootstrap-components>=1.0.0", # UI components
|
|
29
29
|
"dash-svg>=0.0.11", # SVG components for Dash
|
|
30
30
|
"pandas~=3.0.0", # Data processing - allows 3.0.x patches
|
|
31
|
+
"orjson>=3.9.0", # Fast JSON parsing (10-30x faster than stdlib)
|
|
32
|
+
"ijson>=3.2.0", # Streaming JSON parser for progressive loading
|
|
31
33
|
"numpy>=1.17.5", # Numerical computing
|
|
32
34
|
"matplotlib>=3.0.0", # Additional plotting
|
|
33
35
|
"tabulate>=0.8.0", # Table formatting
|
|
@@ -98,13 +100,16 @@ ignore = [
|
|
|
98
100
|
]
|
|
99
101
|
|
|
100
102
|
[tool.ruff.lint.per-file-ignores]
|
|
101
|
-
"tests/**/*.py" = ["ANN201"] # Don't require return type annotations in tests
|
|
103
|
+
"tests/**/*.py" = ["ANN201", "ANN202"] # Don't require return type annotations in tests
|
|
102
104
|
"wafer_core/utils/modal_execution/*.py" = ["PLR0913"] # Modal RPC functions have many parameters
|
|
103
105
|
"wafer_core/utils/kernel_utils/targets/execution.py" = ["PLR0915"] # run_operation_on_target has Modal+SSH paths (71 statements)
|
|
104
106
|
"wafer_core/environments/gpumode.py" = ["ANN401"] # Environment.exec_tool uses Any for rollouts compatibility
|
|
105
107
|
"wafer_core/rollouts/providers/anthropic.py" = ["PLR0915", "PLR1702", "TRY002", "TRY004"] # Complex provider with streaming, retry logic, and try/finally cleanup
|
|
106
108
|
"wafer_core/sandbox/*.py" = ["ASYNC109", "ASYNC240"] # Sandbox uses subprocess timeout (not trio.fail_after) intentionally
|
|
107
109
|
"wafer_core/tools/bash_tool.py" = ["ASYNC109", "ASYNC221"] # Bash tool uses subprocess with timeout
|
|
110
|
+
"wafer_core/utils/kernel_utils/defense.py" = ["ANN002", "ANN003", "ANN202", "PLR0913"] # Defense functions use *args/**kwargs passthrough and have many config params
|
|
111
|
+
"wafer_core/utils/kernel_utils/test_reward_hacks.py" = ["ANN"] # Test fixture file, annotations add noise
|
|
112
|
+
"tests/test_reward_hack_defenses.py" = ["ANN001"] # Parametrized test args don't need annotations
|
|
108
113
|
|
|
109
114
|
[tool.ruff.lint.pylint]
|
|
110
115
|
max-args = 7 # Max function arguments (Tiger Style: few parameters)
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Integration tests for reward hack defenses.
|
|
3
|
+
|
|
4
|
+
Tests the two cut points:
|
|
5
|
+
1. validate_kernel_static() - catches hacks in source code
|
|
6
|
+
2. run_all_defenses_extended() - catches hacks at runtime
|
|
7
|
+
|
|
8
|
+
Each test runs a known attack through the full defense pipeline.
|
|
9
|
+
Requires torch + CUDA — skipped entirely in CI environments without GPU.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import pytest
|
|
13
|
+
|
|
14
|
+
torch = pytest.importorskip("torch", reason="torch required for reward hack defense tests")
|
|
15
|
+
|
|
16
|
+
from wafer_core.utils.kernel_utils.defense import ( # noqa: E402
|
|
17
|
+
run_all_defenses,
|
|
18
|
+
run_all_defenses_extended,
|
|
19
|
+
)
|
|
20
|
+
from wafer_core.utils.kernel_utils.static_checker import validate_kernel_static # noqa: E402
|
|
21
|
+
from wafer_core.utils.kernel_utils.test_reward_hacks import ( # noqa: E402
|
|
22
|
+
STATIC_HACK_SAMPLES,
|
|
23
|
+
caching,
|
|
24
|
+
clear_cache,
|
|
25
|
+
hardcoded_256,
|
|
26
|
+
identity_kernel,
|
|
27
|
+
lazy_evaluation,
|
|
28
|
+
legit_matmul,
|
|
29
|
+
precision_downgrade,
|
|
30
|
+
thread_injection,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
requires_cuda = pytest.mark.skipif(not torch.cuda.is_available(), reason="CUDA not available")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# =============================================================================
|
|
37
|
+
# Cut point 1: validate_kernel_static catches code-level hacks
|
|
38
|
+
# =============================================================================
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@pytest.mark.parametrize(
|
|
42
|
+
"name,code,expected_checks",
|
|
43
|
+
[(name, code, checks) for name, (code, checks) in STATIC_HACK_SAMPLES.items()],
|
|
44
|
+
ids=list(STATIC_HACK_SAMPLES.keys()),
|
|
45
|
+
)
|
|
46
|
+
def test_static_checker_catches_hack(name, code, expected_checks):
|
|
47
|
+
"""Each hack code sample should fail validate_kernel_static."""
|
|
48
|
+
valid, errors, warnings = validate_kernel_static(code)
|
|
49
|
+
# At least one of the expected checks should have fired
|
|
50
|
+
assert not valid or len(warnings) > 0, (
|
|
51
|
+
f"Static checker missed {name}: expected checks {expected_checks} to fire, "
|
|
52
|
+
f"got errors={errors}, warnings={warnings}"
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def test_static_checker_passes_clean_code():
|
|
57
|
+
"""Non-hack code should pass static checks."""
|
|
58
|
+
clean = "@triton.jit\ndef kernel(ptr, BLOCK: tl.constexpr):\n tl.store(ptr, tl.load(ptr))\n"
|
|
59
|
+
valid, errors, warnings = validate_kernel_static(clean, backend="triton")
|
|
60
|
+
assert valid, f"Clean code should pass: errors={errors}"
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# =============================================================================
|
|
64
|
+
# Cut point 2: run_all_defenses / run_all_defenses_extended
|
|
65
|
+
# =============================================================================
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
@requires_cuda
|
|
69
|
+
@pytest.mark.parametrize(
|
|
70
|
+
"name,attack_fn",
|
|
71
|
+
[
|
|
72
|
+
("thread_injection", thread_injection),
|
|
73
|
+
("lazy_evaluation", lazy_evaluation),
|
|
74
|
+
("precision_downgrade", precision_downgrade),
|
|
75
|
+
],
|
|
76
|
+
)
|
|
77
|
+
def test_runtime_defense_catches_timing_attack(name, attack_fn):
|
|
78
|
+
"""Timing attacks are caught by run_all_defenses."""
|
|
79
|
+
A = torch.randn(256, 256, device="cuda")
|
|
80
|
+
B = torch.randn(256, 256, device="cuda")
|
|
81
|
+
torch.cuda.synchronize()
|
|
82
|
+
|
|
83
|
+
all_passed, results, _ = run_all_defenses(legit_matmul, A, B)
|
|
84
|
+
# Sanity: legit passes
|
|
85
|
+
assert all_passed
|
|
86
|
+
|
|
87
|
+
all_passed, results, _ = run_all_defenses(attack_fn, A, B)
|
|
88
|
+
assert not all_passed, f"{name} should be caught"
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@requires_cuda
|
|
92
|
+
def test_monkey_patch_detected():
|
|
93
|
+
"""Monkey-patching of timing functions is caught."""
|
|
94
|
+
original = torch.cuda.Event.elapsed_time
|
|
95
|
+
try:
|
|
96
|
+
torch.cuda.Event.elapsed_time = lambda self, end: 0.001
|
|
97
|
+
A = torch.randn(256, 256, device="cuda")
|
|
98
|
+
B = torch.randn(256, 256, device="cuda")
|
|
99
|
+
all_passed, results, _ = run_all_defenses(legit_matmul, A, B)
|
|
100
|
+
assert not all_passed
|
|
101
|
+
finally:
|
|
102
|
+
torch.cuda.Event.elapsed_time = original
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
@requires_cuda
|
|
106
|
+
def test_caching_attack_caught():
|
|
107
|
+
"""Caching/memoization is caught by multi-input validation."""
|
|
108
|
+
clear_cache()
|
|
109
|
+
|
|
110
|
+
def input_gen():
|
|
111
|
+
return (
|
|
112
|
+
torch.randn(256, 256, device="cuda"),
|
|
113
|
+
torch.randn(256, 256, device="cuda"),
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
A, B = input_gen()
|
|
117
|
+
all_passed, results, _ = run_all_defenses_extended(
|
|
118
|
+
caching,
|
|
119
|
+
A,
|
|
120
|
+
B,
|
|
121
|
+
reference_fn=torch.matmul,
|
|
122
|
+
input_generator=input_gen,
|
|
123
|
+
)
|
|
124
|
+
assert not all_passed, "Caching attack should be caught"
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
@requires_cuda
|
|
128
|
+
def test_hardcoded_shapes_caught():
|
|
129
|
+
"""Hardcoded optimization is caught by multi-shape validation."""
|
|
130
|
+
A = torch.randn(256, 256, device="cuda")
|
|
131
|
+
B = torch.randn(256, 256, device="cuda")
|
|
132
|
+
|
|
133
|
+
all_passed, results, _ = run_all_defenses_extended(
|
|
134
|
+
hardcoded_256,
|
|
135
|
+
A,
|
|
136
|
+
B,
|
|
137
|
+
reference_fn=torch.matmul,
|
|
138
|
+
test_shapes=[(128, 128), (256, 256), (512, 512)],
|
|
139
|
+
)
|
|
140
|
+
assert not all_passed, "Hardcoded shapes attack should be caught"
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
@requires_cuda
|
|
144
|
+
def test_identity_kernel_caught():
|
|
145
|
+
"""Identity kernel is caught when reference produces different output."""
|
|
146
|
+
x = torch.randn(256, 256, device="cuda")
|
|
147
|
+
|
|
148
|
+
all_passed, results, _ = run_all_defenses_extended(
|
|
149
|
+
identity_kernel,
|
|
150
|
+
x,
|
|
151
|
+
reference_fn=torch.relu,
|
|
152
|
+
)
|
|
153
|
+
assert not all_passed, "Identity kernel should be caught"
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
@requires_cuda
|
|
157
|
+
def test_extended_pipeline_legit_with_all_defenses():
|
|
158
|
+
"""Legit kernel passes full extended pipeline with all defense flags enabled.
|
|
159
|
+
|
|
160
|
+
This is the actual code path used by `wafer evaluate kernelbench`.
|
|
161
|
+
Exercises: base timing defenses, caching, shape, identity, GEMM exact
|
|
162
|
+
correctness, ULP precision, and memory guards — all through the single
|
|
163
|
+
run_all_defenses_extended() entry point.
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
def input_gen():
|
|
167
|
+
return (
|
|
168
|
+
torch.randn(256, 256, device="cuda"),
|
|
169
|
+
torch.randn(256, 256, device="cuda"),
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
A, B = input_gen()
|
|
173
|
+
all_passed, results, _ = run_all_defenses_extended(
|
|
174
|
+
legit_matmul,
|
|
175
|
+
A,
|
|
176
|
+
B,
|
|
177
|
+
reference_fn=torch.matmul,
|
|
178
|
+
input_generator=input_gen,
|
|
179
|
+
test_shapes=[(128, 128), (256, 256)],
|
|
180
|
+
is_gemm=True,
|
|
181
|
+
gemm_dims=(128, 128, 128),
|
|
182
|
+
check_precision_ulp=True,
|
|
183
|
+
)
|
|
184
|
+
failed = [(name, msg) for name, passed, msg in results if not passed]
|
|
185
|
+
assert all_passed, f"Legit kernel failed full extended pipeline: {failed}"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Tests for trace comparison functionality."""
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"""Benchmark script for trace comparison performance.
|
|
2
|
+
|
|
3
|
+
Measures performance for:
|
|
4
|
+
- JSON parsing (orjson)
|
|
5
|
+
- Phase lookup (binary search)
|
|
6
|
+
- Full trace loading
|
|
7
|
+
|
|
8
|
+
Run with:
|
|
9
|
+
python -m tests.trace_compare.benchmark_trace_compare
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import json
|
|
13
|
+
import time
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
import orjson
|
|
17
|
+
|
|
18
|
+
from wafer_core.lib.trace_compare.loader import load_trace, _process_events_single_pass
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
TRACE_EXAMPLES_DIR = Path("/root/wafer/experiments/ian/vllm-trace-compare/examples")
|
|
22
|
+
TRACE_FILES = {
|
|
23
|
+
"small": TRACE_EXAMPLES_DIR / "amd_llama.json",
|
|
24
|
+
"medium": TRACE_EXAMPLES_DIR / "nvidia_llama.json",
|
|
25
|
+
"large": TRACE_EXAMPLES_DIR / "amd_oss.json",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def benchmark_json_parsing(file_path: Path, num_runs: int = 3) -> dict[str, float]:
|
|
30
|
+
"""Benchmark JSON parsing: orjson vs stdlib json."""
|
|
31
|
+
print(f"\n📊 Benchmarking JSON parsing: {file_path.name}")
|
|
32
|
+
print(f" File size: {file_path.stat().st_size / (1024**2):.1f} MB")
|
|
33
|
+
|
|
34
|
+
with open(file_path, "rb") as f:
|
|
35
|
+
content_bytes = f.read()
|
|
36
|
+
content_str = content_bytes.decode("utf-8")
|
|
37
|
+
|
|
38
|
+
orjson_times = []
|
|
39
|
+
for _ in range(num_runs):
|
|
40
|
+
start = time.perf_counter()
|
|
41
|
+
_ = orjson.loads(content_bytes)
|
|
42
|
+
orjson_times.append(time.perf_counter() - start)
|
|
43
|
+
|
|
44
|
+
json_times = []
|
|
45
|
+
for _ in range(num_runs):
|
|
46
|
+
start = time.perf_counter()
|
|
47
|
+
_ = json.loads(content_str)
|
|
48
|
+
json_times.append(time.perf_counter() - start)
|
|
49
|
+
|
|
50
|
+
orjson_avg = sum(orjson_times) / len(orjson_times)
|
|
51
|
+
json_avg = sum(json_times) / len(json_times)
|
|
52
|
+
speedup = json_avg / orjson_avg if orjson_avg > 0 else 0
|
|
53
|
+
|
|
54
|
+
print(f" orjson: {orjson_avg:.2f}s (avg of {num_runs} runs)")
|
|
55
|
+
print(f" stdlib json: {json_avg:.2f}s (avg of {num_runs} runs)")
|
|
56
|
+
print(f" Speedup: {speedup:.1f}x")
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
"orjson_time": orjson_avg,
|
|
60
|
+
"json_time": json_avg,
|
|
61
|
+
"speedup": speedup,
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def benchmark_phase_lookup(file_path: Path, num_samples: int = 10000) -> dict[str, float]:
|
|
66
|
+
"""Benchmark phase lookup using binary search."""
|
|
67
|
+
print(f"\n📊 Benchmarking phase lookup: {file_path.name}")
|
|
68
|
+
|
|
69
|
+
with open(file_path, "rb") as f:
|
|
70
|
+
trace = orjson.loads(f.read())
|
|
71
|
+
|
|
72
|
+
events = trace.get("traceEvents", [])
|
|
73
|
+
pass_result = _process_events_single_pass(events, include_stacks=False)
|
|
74
|
+
sorted_phases = sorted(pass_result.phases, key=lambda p: p["ts_start"])
|
|
75
|
+
|
|
76
|
+
import bisect
|
|
77
|
+
phase_starts = [p["ts_start"] for p in sorted_phases]
|
|
78
|
+
phase_types = [p["type"] for p in sorted_phases]
|
|
79
|
+
phase_ends = [p["ts_end"] for p in sorted_phases]
|
|
80
|
+
|
|
81
|
+
def _get_phase_binary(ts: int) -> str:
|
|
82
|
+
if not phase_starts:
|
|
83
|
+
return "decode"
|
|
84
|
+
idx = bisect.bisect_right(phase_starts, ts) - 1
|
|
85
|
+
if idx >= 0 and phase_starts[idx] <= ts <= phase_ends[idx]:
|
|
86
|
+
return phase_types[idx]
|
|
87
|
+
return "decode"
|
|
88
|
+
|
|
89
|
+
kernel_timestamps = [
|
|
90
|
+
ev["ts"] for ev in pass_result.kernel_events[:num_samples]
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
start = time.perf_counter()
|
|
94
|
+
for ts in kernel_timestamps:
|
|
95
|
+
_ = _get_phase_binary(ts)
|
|
96
|
+
binary_time = time.perf_counter() - start
|
|
97
|
+
|
|
98
|
+
print(f" Samples: {len(kernel_timestamps)} kernel timestamps")
|
|
99
|
+
print(f" Binary: {binary_time:.3f}s")
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
"binary_time": binary_time,
|
|
103
|
+
"samples": len(kernel_timestamps),
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def benchmark_load_trace(file_path: Path, num_runs: int = 2) -> dict[str, float]:
|
|
108
|
+
"""Benchmark full trace loading."""
|
|
109
|
+
print(f"\n📊 Benchmarking full trace loading: {file_path.name}")
|
|
110
|
+
|
|
111
|
+
opt_times = []
|
|
112
|
+
for _ in range(num_runs):
|
|
113
|
+
start = time.perf_counter()
|
|
114
|
+
_ = load_trace(file_path, include_stacks=True)
|
|
115
|
+
opt_times.append(time.perf_counter() - start)
|
|
116
|
+
|
|
117
|
+
opt_avg = sum(opt_times) / len(opt_times)
|
|
118
|
+
|
|
119
|
+
print(f" Load time: {opt_avg:.2f}s (avg of {num_runs} runs)")
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
"load_time": opt_avg,
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def main() -> None:
|
|
127
|
+
"""Run all benchmarks."""
|
|
128
|
+
print("=" * 70)
|
|
129
|
+
print("Trace Compare Performance Benchmarks")
|
|
130
|
+
print("=" * 70)
|
|
131
|
+
|
|
132
|
+
available_files = {name: path for name, path in TRACE_FILES.items() if path.exists()}
|
|
133
|
+
|
|
134
|
+
if not available_files:
|
|
135
|
+
print("\n❌ No trace files found in:", TRACE_EXAMPLES_DIR)
|
|
136
|
+
return
|
|
137
|
+
|
|
138
|
+
print(f"\n✅ Found {len(available_files)} trace file(s)")
|
|
139
|
+
|
|
140
|
+
test_file = min(available_files.values(), key=lambda p: p.stat().st_size)
|
|
141
|
+
print(f"\n📁 Using test file: {test_file.name} ({test_file.stat().st_size / (1024**2):.1f} MB)")
|
|
142
|
+
|
|
143
|
+
results = {}
|
|
144
|
+
|
|
145
|
+
try:
|
|
146
|
+
results["json_parsing"] = benchmark_json_parsing(test_file, num_runs=3)
|
|
147
|
+
except Exception as e:
|
|
148
|
+
print(f" ❌ Error: {e}")
|
|
149
|
+
results["json_parsing"] = None
|
|
150
|
+
|
|
151
|
+
try:
|
|
152
|
+
results["phase_lookup"] = benchmark_phase_lookup(test_file, num_samples=10000)
|
|
153
|
+
except Exception as e:
|
|
154
|
+
print(f" ❌ Error: {e}")
|
|
155
|
+
results["phase_lookup"] = None
|
|
156
|
+
|
|
157
|
+
try:
|
|
158
|
+
results["load_trace"] = benchmark_load_trace(test_file, num_runs=1)
|
|
159
|
+
except Exception as e:
|
|
160
|
+
print(f" ❌ Error: {e}")
|
|
161
|
+
results["load_trace"] = None
|
|
162
|
+
|
|
163
|
+
print("\n" + "=" * 70)
|
|
164
|
+
print("Summary")
|
|
165
|
+
print("=" * 70)
|
|
166
|
+
|
|
167
|
+
json_parsing = results.get("json_parsing")
|
|
168
|
+
if json_parsing is not None:
|
|
169
|
+
print(f"JSON Parsing Speedup: {json_parsing['speedup']:.1f}x")
|
|
170
|
+
|
|
171
|
+
phase_lookup = results.get("phase_lookup")
|
|
172
|
+
if phase_lookup is not None:
|
|
173
|
+
print(f"Phase Lookup: {phase_lookup['binary_time']:.3f}s ({phase_lookup['samples']} samples)")
|
|
174
|
+
|
|
175
|
+
load_trace_result = results.get("load_trace")
|
|
176
|
+
if load_trace_result is not None:
|
|
177
|
+
print(f"Full Load Time: {load_trace_result['load_time']:.2f}s")
|
|
178
|
+
|
|
179
|
+
print("\n✅ Benchmarks complete!")
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
if __name__ == "__main__":
|
|
183
|
+
main()
|