SciML / SciML/ParallelParticleSwarms.jl

Another implementation which migrates Static Arrays to Matrices for high dimensional parameter estimation problems

Open
#25 0 comments 0 reactions 1 assignee View on GitHub

@Vaibhavdixit02 is already working on this.

Since Nov 15, 2023.

Dominant language
Julia
Stars
30
Forks
4
Avg merge
5h 11m
Merged PRs (30d)
14

Description

In order for this struct to compile in the GPU kernel,
https://github.com/SciML/PSOGPU.jl/blob/7bbd997fb8f00e032d31224619d0e31fe716b812/src/PSOGPU.jl#L9-L15

The type T1 needs to be a static array. However, this will cause issues with high dimensional problems, say >100; the performance would not be great and might even fail to compile. A workaround for this might be to simply destructure the PSOParticle and initialize matrices for position, velocity, cost, best_position, best_cost, simply cudaconvert it to pass them to GPU kernel and update each view in the thread. This will allow us to work with high-dimensional parameters. The difference is somewhat similar to the difference between EnsembleGPUArray and EnsembleGPUKernel.

@ChrisRackauckas I believe this idea might work for any NN-based optimization. And always prefer the current implementation for low-dimensional ODE parameter estimation. Any thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.