Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmarks #19

Open
lucasgrjn opened this issue Mar 22, 2024 · 4 comments
Open

Benchmarks #19

lucasgrjn opened this issue Mar 22, 2024 · 4 comments

Comments

@lucasgrjn
Copy link

Hey really cool project!

I find this repo after searching about FDTD from this topic. I am searching for a (fast) FDTD engine to play a bit. I was wondering if you had any benchmark between the solver commonly available (aka MEEP or fdtdz). Especially considering the scale multi-CPUs or multi-GPUs.

Thanks and really nice project! :)

@paulxshen
Copy link
Owner

Thanks for reaching out! I haven't done benchmarks yet. We simply use Julia's diff and broadcasted array arithmetic with GPU calls (if used) compiled by CUDA.jl. So it's probably comparable to Meep but slower than fdtdz.

What system scale are you thinking? For inverse design of typical components less than 10 x 10 um even a single machine is sufficient. From there one would extract the component S parameters used for system simulation. So I don't really see a big need for systems level FDTD which fdtdz caters to except in some 3d metamaterials cases - I could be wrong though.

Our focus is on ease of use and flexibility wrt inverse design. We're bare bones AD compatible with Zygote.jl w/ no custom adjoints. There's some broken code now - we're fixing our examples and planning a first stable release next week. Afterwards I'm happy to do a quick presentation (live meeting or recorded) for your team if desired.

@lucasgrjn
Copy link
Author

In my academic work, I mainly play with photonic crystals. Depending on the size, I think you can assimilate them as a meta surface. Or if you try to integrate them, you can end up with large devices...

Right now, I only investigate the possibilities. But I will keep an eye on the next release!

Thanks for your complete response!

@paulxshen
Copy link
Owner

Got it that makes sense. There's also the commercial package Tidy3D which can also handle massive scale but doing AD with backend hidden in the cloud is maybe not easy.. I pushed a new release and documented the tutorials on project site. It's still in alpha and likely buggy - I'm happy to help write a test script if you wanna try something out. Using Float16 on gpu should help

@paulxshen
Copy link
Owner

I thought Meep had a GPU variant but officially no. Assuming Meep stays CPU only, our GPU implementation should be faster, though not as fast as a bespoke GPU implementation like fdtdz which is more feature restrictive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants