Team Ai
Apppublic

EZHARDYNAMICS/Sovereign-OneAPI-migration-logic-kernel

sourceHugging Faceotherupdated 10mo agoView on Hugging Face
0likes
01_OneAPI_Migration.py107 linesDownload Raw Back to pages
1import streamlit as st2import time3import pandas as pd4import plotly.graph_objects as go5from utils import inject_industrial_css, verify_session, AppConfig, ReportEngine6from kernel_simulator import benchmark_latency_scenarios7 8st.set_page_config(page_title="MIGRATION", layout="wide")9inject_industrial_css()10verify_session()11 12st.markdown(f"<h2 style='color:{AppConfig.THEME_COLOR}'>MODULE 01: MIGRATION ENGINE</h2>", unsafe_allow_html=True)13 14# 1. CODE ANALYSIS15col_code, col_vis = st.columns([1.5, 1])16 17with col_code:18    st.markdown("#### 1. INTELLIGENT TRANSPILER")19    mode = st.radio("VIEW MODE", ["SOURCE (CUDA)", "TARGET (XPU/IPEX)"], horizontal=True)20    21    if mode == "SOURCE (CUDA)":22        st.code("""23        # LEGACY IMPLEMENTATION24        device = torch.device("cuda")25        model = ResNet50().to(device)26        27        # Standard FP32 Training Loop28        for data, target in loader:29            data, target = data.to(device), target.to(device)30            optimizer.zero_grad()31            output = model(data)32            loss = criterion(output, target)33            loss.backward()34        """, language="python")35    else:36        st.code("""37        # INTEL OPTIMIZED IMPLEMENTATION38        import intel_extension_for_pytorch as ipex  # <--- CORE39        40        device = torch.device("xpu")  # Gaudi Target41        model = ResNet50().to(device)42        43        # JIT Graph Optimization44        model, optimizer = ipex.optimize(model, optimizer=optimizer, dtype=torch.bfloat16)45        46        for data, target in loader:47            data, target = data.to(device), target.to(device)48            with torch.xpu.amp.autocast():  # Mixed Precision49                output = model(data)50                loss = criterion(output, target)51            loss.backward()52        """, language="python")53 54with col_vis:55    st.markdown("#### 2. GAIN PROJECTION")56    st.info("Simulation assumes **Intel Gaudi 3** vs **A100** baseline using Matrix Multiplication (GEMM) workloads.")57    if st.button("RUN BENCHMARK SEQUENCE", type="primary", use_container_width=True):58        59        with st.spinner("DISPATCHING KERNELS TO XPU..."):60            data = benchmark_latency_scenarios()61            time.sleep(1) # UX Pause62            st.session_state['bench_data'] = data63            st.success("COMPUTE SUCCESSFUL")64 65# 2. VISUALIZATION66if st.session_state.get('bench_data'):67    data = st.session_state['bench_data']68    df = pd.DataFrame(data)69    70    st.markdown("---")71    st.markdown("#### 3. TELEMETRY VISUALIZATION")72    73    # Plotly Chart74    fig = go.Figure()75    fig.add_trace(go.Bar(76        x=df['matrix_size'], 77        y=df['cpu_ms'], 78        name='Legacy (FP32)', 79        marker_color='#333'80    ))81    fig.add_trace(go.Bar(82        x=df['matrix_size'], 83        y=df['sim_gpu_ms'], 84        name='Gaudi 3 (BF16)', 85        marker_color=AppConfig.THEME_COLOR86    ))87    88    fig.update_layout(89        title="LATENCY COMPARISON (Lower is Better)",90        xaxis_title="Tensor Batch Size",91        yaxis_title="Time (ms)",92        plot_bgcolor='rgba(0,0,0,0)',93        paper_bgcolor='rgba(0,0,0,0)',94        font=dict(family="JetBrains Mono", color="#ccc"),95        barmode='group'96    )97    st.plotly_chart(fig, use_container_width=True)98    99    # EXPORTS100    col_dl1, col_dl2 = st.columns(2)101    with col_dl1:102        pdf_bytes = ReportEngine.generate_classified_pdf(data, {"model": "INTEL GAUDI 3"})103        st.download_button("๐Ÿ“„ DOWNLOAD CLASSIFIED REPORT", pdf_bytes, "intel_audit.pdf", "application/pdf", use_container_width=True)104    105    with col_dl2:106        csv = df.to_csv(index=False).encode('utf-8')107        st.download_button("๐Ÿ’พ DOWNLOAD RAW TENSORS", csv, "tensors.csv", "text/csv", use_container_width=True)