Conversation
…amples Add detailed timing to prepare_simulation! (per-phase: init_geometry, init_boundaries, add_sources, init_fields, init_monitors) and to run() (total steps, elapsed time, MVoxels/s overall and after 50-step warmup). Augment all 6 example scripts to run twice with fresh simulation objects: once cold (includes JIT compilation) and once warm, to separate algorithmic cost from compilation overhead. Plotting is done only once at the end.
Two new documents in docs/: - ROADMAP.md: Three-layer architecture (Frontend, Graph Compiler, Engine Backend) organizing 32+ feature gaps identified by comparing Khronos against Meep, Tidy3D, and fdtdx. Each feature specifies priority tier (P0-P3), implementation guidance, code references, and scope estimates. - EXAMPLES.md: 49 proposed examples mapped against 33 Meep examples, 199 Tidy3D notebooks, and 5 fdtdx examples. Includes 13 scaling and performance benchmarks (9 buildable now), cross-solver coverage matrix, and phased implementation plan aligned with the roadmap.
run_benchmark was measuring CPU kernel launch time instead of actual GPU execution time, inflating reported MCells/s by up to 120x at large grid sizes. Add KernelAbstractions.synchronize() after warmup and after the measurement loop.
- cw_steady_state.jl: CW source steady-state field validation - fresnel_reflectance.jl: Fresnel reflectance via reflected-field subtraction - anisotropic_slab.jl: Polarization-dependent Fabry-Perot transmission - gaussian_beam_waist.jl: Gaussian beam waist measurement - waveguide_2d_te.jl: 2D TE waveguide confinement - throughput_vs_size.jl: Single-GPU throughput scaling with grid size - throughput_vs_complexity.jl: Throughput vs physics complexity - precision_comparison.jl: Float32 vs Float64 accuracy comparison
- bandwidth_analysis.jl: Actual vs reported throughput (sync bug analysis) - bandwidth_deepdive.jl: Per-kernel bandwidth, stencil stride, OffsetArray overhead - composability_test.jl: Isolate dispatch vs OffsetArray vs fusion overhead - kernel_profiling.jl: Per-kernel timing breakdown with CUDA events - profile_kernel.jl: Nsight-compatible profiling wrapper
Removed ::Union{AbstractArray,Nothing} type annotations from step_curl!
and update_field! @kernel signatures in Timestep.jl. These annotations
prevented GPUCompiler from specializing per call-site concrete types,
forcing a single generic kernel with runtime dispatch. Added @inline to
all helper functions (generic_curl!, update_field_generic, scale_by_half,
get_σ, get_σD, get_m_inv) to ensure full inlining on GPU.
Results on A100 80GB (256³, Float64, PML):
- Full step: 363 → 1747 MCells/s (4.8x)
- Memory bandwidth: 262 → 1258 GB/s (13% → 62% of peak)
- step_curl!: 512 → 1661 GB/s (81% peak)
- update_field! (no source): 148 → 1365 GB/s (67% peak)
Updated ROADMAP.md with performance benchmarks across all examples and
a prioritized list of remaining optimization opportunities.
There was a problem hiding this comment.
Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit
JuliaFormatter
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_analysis.jl
Lines 89 to 90 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_analysis.jl
Line 92 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_analysis.jl
Lines 104 to 105 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_analysis.jl
Lines 109 to 110 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_analysis.jl
Line 113 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_analysis.jl
Lines 118 to 120 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 19 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 23 to 24 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 29 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 50 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 55 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 63 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 91 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 122 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 124 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 126 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 128 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 131 to 132 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 152 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 154 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 167 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 169 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 171 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 207 to 208 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 220 to 222 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 224 to 226 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 229 to 230 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 247 to 248 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 254 to 255 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 261 to 262 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 267 to 268 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 273 to 274 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 279 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 282 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 285 to 286 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 290 to 291 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 295 to 296 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 302 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 311 to 313 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 315 to 320 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 324 to 328 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 341 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 344 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 348 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 350 to 352 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 357 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 373 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 382 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 395 to 396 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 398 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 411 to 415 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 417 to 418 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 434 to 438 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 440 to 441 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Lines 457 to 460 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 481 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/bandwidth_deepdive.jl
Line 513 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 15 to 18 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 23 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 76 to 80 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 82 to 83 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 88 to 93 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 98 to 100 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 102 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 108 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 129 to 131 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 133 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 138 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 143 to 144 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 149 to 150 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 155 to 156 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 165 to 171 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 191 to 200 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 202 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 206 to 211 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 213 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 217 to 222 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 224 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 229 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 231 to 236 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 239 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 244 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 249 to 252 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 269 to 273 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 275 to 276 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 325 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 327 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 329 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 331 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 333 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 335 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 337 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 342 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 346 to 347 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 363 to 364 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 367 to 368 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 378 to 379 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 382 to 383 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 393 to 394 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 399 to 403 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 406 to 414 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 428 to 429 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 432 to 450 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 454 to 455 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 458 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 460 to 462 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 464 to 466 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 468 to 470 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 478 to 483 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Lines 491 to 492 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/composability_test.jl
Line 508 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 15 to 20 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 23 to 24 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 31 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 35 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 38 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 49 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 51 to 52 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 56 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 58 to 61 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 64 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 68 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 86 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 90 to 91 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 95 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Line 99 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 105 to 106 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 109 to 112 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/cw_steady_state.jl
Lines 115 to 121 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 17 to 21 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 24 to 25 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 74 to 78 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 87 to 88 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 98 to 99 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Line 101 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 107 to 109 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Line 125 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/fresnel_reflectance.jl
Lines 139 to 152 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 18 to 19 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 21 to 22 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 25 to 26 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 46 to 48 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 62 to 63 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 69 to 72 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Line 115 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 123 to 133 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Line 138 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Line 140 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 142 to 145 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/gaussian_beam_waist.jl
Lines 148 to 151 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 20 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 23 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 28 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 30 to 32 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 64 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 83 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 127 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 132 to 134 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 136 to 139 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 148 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 151 to 152 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 154 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 200 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 221 to 224 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 226 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 240 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 258 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 285 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 290 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 295 to 305 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 307 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 315 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 317 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Lines 319 to 329 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 331 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 395 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 416 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/kernel_profiling.jl
Line 419 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 17 to 20 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 30 to 31 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 53 to 55 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 69 to 73 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 81 to 82 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 88 to 89 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Line 102 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 121 to 122 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/precision_comparison.jl
Lines 126 to 139 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/profile_kernel.jl
Line 14 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/profile_kernel.jl
Line 17 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/profile_kernel.jl
Line 22 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/profile_kernel.jl
Lines 24 to 26 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/profile_kernel.jl
Line 31 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/profile_kernel.jl
Line 40 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 22 to 25 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 48 to 49 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 56 to 57 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 78 to 79 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 81 to 82 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 87 to 88 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 105 to 106 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 119 to 120 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 122 to 123 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 155 to 156 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_complexity.jl
Lines 162 to 164 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 16 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 20 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 24 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 37 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 40 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 46 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Lines 48 to 50 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Lines 79 to 80 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Line 83 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/throughput_vs_size.jl
Lines 86 to 89 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 18 to 25 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 28 to 30 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 54 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 57 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 70 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 76 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 82 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 84 to 88 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 91 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 100 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 105 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 107 to 109 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 122 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 125 to 128 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 130 to 131 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 133 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 136 to 137 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 139 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 141 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Lines 143 to 144 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 146 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Khronos.jl/examples/waveguide_2d_te.jl
Line 148 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Line 69 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Lines 193 to 195 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Line 197 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Lines 183 to 189 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Line 294 in 475ddae
[JuliaFormatter] reported by reviewdog 🐶
Lines 451 to 457 in 475ddae
| εx = 4.0 # permittivity seen by x-polarized light | ||
| εy = 1.5 # permittivity seen by y-polarized light | ||
| εz = 4.0 # permittivity along propagation direction | ||
| d_slab = 0.5 # slab thickness (μm) | ||
| dpml = 0.5 # PML thickness |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| εx = 4.0 # permittivity seen by x-polarized light | |
| εy = 1.5 # permittivity seen by y-polarized light | |
| εz = 4.0 # permittivity along propagation direction | |
| d_slab = 0.5 # slab thickness (μm) | |
| dpml = 0.5 # PML thickness | |
| εx = 4.0 # permittivity seen by x-polarized light | |
| εy = 1.5 # permittivity seen by y-polarized light | |
| εz = 4.0 # permittivity along propagation direction | |
| d_slab = 0.5 # slab thickness (μm) | |
| dpml = 0.5 # PML thickness |
| function main(; resolution=resolution, εx=εx, εy=εy, εz=εz, | ||
| d_slab=d_slab, dpml=dpml) |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| function main(; resolution=resolution, εx=εx, εy=εy, εz=εz, | |
| d_slab=d_slab, dpml=dpml) | |
| function main(; | |
| resolution = resolution, | |
| εx = εx, | |
| εy = εy, | |
| εz = εz, | |
| d_slab = d_slab, | |
| dpml = dpml, | |
| ) |
| Khronos.choose_backend(Khronos.CUDADevice(), Float64) | ||
|
|
||
| # Use the same source parameters as the known-working periodic_slab.jl | ||
| λ = range(1.0, 2.0, length=100) |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| λ = range(1.0, 2.0, length=100) | |
| λ = range(1.0, 2.0, length = 100) |
| monitor_xy = 0.5 | ||
| monitor_height = 0.5 | ||
| sxy = 2*dpml + monitor_xy | ||
| sz = 2*dpml + 4*monitor_height |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| sz = 2*dpml + 4*monitor_height | |
| sz = 2*dpml + 4*monitor_height |
| t = ((1 .+ rho) .* (1 .- rho) .* exp.(-2im * π * n * d ./ λ_vec)) ./ | ||
| (1 .- rho.^2 .* exp.(-4im * π * n * d ./ λ_vec)) | ||
| return abs.(t).^2 |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| t = ((1 .+ rho) .* (1 .- rho) .* exp.(-2im * π * n * d ./ λ_vec)) ./ | |
| (1 .- rho.^2 .* exp.(-4im * π * n * d ./ λ_vec)) | |
| return abs.(t).^2 | |
| t = | |
| ((1 .+ rho) .* (1 .- rho) .* exp.(-2im * π * n * d ./ λ_vec)) ./ | |
| (1 .- rho .^ 2 .* exp.(-4im * π * n * d ./ λ_vec)) | |
| return abs.(t) .^ 2 |
| resolution = 10, | ||
| sources = sources, | ||
| boundaries = [[dpml, dpml], [dpml, dpml], [dpml, dpml]], |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| resolution = 10, | |
| sources = sources, | |
| boundaries = [[dpml, dpml], [dpml, dpml], [dpml, dpml]], | |
| resolution = 10, | |
| sources = sources, | |
| boundaries = [[dpml, dpml], [dpml, dpml], [dpml, dpml]], |
| working_set_mb = n_arrays * array_bytes / 1024^2 | ||
|
|
||
| # Warmup | ||
| for _ in 1:n_warmup |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| for _ in 1:n_warmup | |
| for _ = 1:n_warmup |
| stop_event = CUDA.CuEvent() | ||
|
|
||
| CUDA.record(start_event) | ||
| for _ in 1:n_measure |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| for _ in 1:n_measure | |
| for _ = 1:n_measure |
|
|
||
| # Also measure with run_benchmark for comparison (has the sync bug) | ||
| sim2 = Khronos.Simulation( | ||
| cell_size = [cell_val, cell_val, cell_val], |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| cell_size = [cell_val, cell_val, cell_val], | |
| cell_size = [cell_val, cell_val, cell_val], |
| resolution = 10, | ||
| sources = sources, | ||
| boundaries = [[dpml, dpml], [dpml, dpml], [dpml, dpml]], |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| resolution = 10, | |
| sources = sources, | |
| boundaries = [[dpml, dpml], [dpml, dpml], [dpml, dpml]], | |
| resolution = 10, | |
| sources = sources, | |
| boundaries = [[dpml, dpml], [dpml, dpml], [dpml, dpml]], |
No description provided.