1. 24 Sep, 2024 4 commits
  2. 05 Sep, 2024 2 commits
  3. 03 Sep, 2024 3 commits
  4. 29 Aug, 2024 4 commits
  5. 27 Aug, 2024 2 commits
  6. 10 Feb, 2024 1 commit
  7. 08 Feb, 2024 1 commit
  8. 06 Jan, 2024 1 commit
  9. 03 Jan, 2024 1 commit
  10. 01 Jan, 2024 2 commits
    • Mitch Burnett's avatar
    • Mitch Burnett's avatar
      add config file as part of rtbf source · c6372bb6
      Mitch Burnett authored
      Remove the `is_subproject` check in the meson build file. This would
      conditionally create and handle config data generation and info based on
      use as a subproject or not. This seemed to be a very poor and
      non-standard approach using config data. Now, the parent project using
      the library will pass parameters as part of `default_options` to the
      subproject . Then the project always dumps its own config file rather
      than being passed up and created by the parent project. This was also
      modified and is reflected in the other xb-engine core libraries.
      c6372bb6
  11. 17 Mar, 2023 1 commit
  12. 15 Mar, 2023 2 commits
  13. 14 Mar, 2023 1 commit
    • Mitch Burnett's avatar
      modified mesonbuild to better support the demo benchmark codes · 4e8bd787
      Mitch Burnett authored
      pgplot has been a dependency for a long time, but have alaways wanted to
      ultimately make that optional. This starts that.
      
      the `demo*` codes that do the benchmarking rely on some XB engine
      parameter info. Primarily because for ALPACA benchmarking use some data
      assumptions to show meaningful results when plotting. But, also because
      the library incorporates the network data reorder and the
      Fengine/Xengine structures is where that is derived from.
      4e8bd787
  14. 26 Jan, 2023 2 commits
  15. 25 Jan, 2023 1 commit
    • Mitch Burnett's avatar
      initial commit integrating pfb as a component of the rtbf · 1b115cc4
      Mitch Burnett authored
      The rtbf is generally flexible to having the pfb integrated but it
      undermines much of the way it was implemented (e.g., the way the post
      beamform kernel was setup and switching `d_output` between
      `d_beamformed` and `d_post_beamform`). However, this should still work.
      
      The thinking is that for right now it is more important to show that the
      PFB can work with the beamformer and to have a base benchmark on
      profiling. I do not exactly need it in hashpipe yet. In the current
      form this would work except the way the rtbf builds the pfb uses a
      subproject and it is not allowed to have subprojects that have
      subprojects and so for this to work with the xb-engine/pipeline the use
      of the pfb in the rtbf this way would need to be able to access the pfb
      as a subproject of xb-engine that lives next to rtbf (the other
      subproject of the xb-engine)
      
      But getting back to the idea; implement now beamformer+pfb to benchmark,
      go work on other things outside the context of the rtbf. Then one that
      is all demonstrated come back to looking how to integrate these two
      components with the possibility of improving the architecture for a more
      generalized function chaining for how a pipeline would work.
      1b115cc4
  16. 18 Jan, 2023 1 commit
  17. 17 Jan, 2023 2 commits
    • Mitch Burnett's avatar
      Remove `nr_rows/cols_*` from internal rtbf context · de6b3ba7
      Mitch Burnett authored
      Having these within the internal context rtbf context seemed to add an
      extra layer of abstraction that was unnecessary in favor of readability.
      
      Evaluating this started when the correlator was added. This was
      initially to be the approach before changing the `nr_rows/cols_*` from
      generic cublas input names (A,B,C) to more specific names as part of the
      application.
      
      Then with the specifc names it seemed more appropriate to remove it
      altogether because it further improves readability and although it was
      considered to keep the more generic interface but the
      beamformer/correlator really is fixed and will not be reconfigured.
      Makes more sense to keep the information close to the implementation.
      de6b3ba7
    • Mitch Burnett's avatar
      Give correlator dedicated resources as part of the rtbf · 42da418d
      Mitch Burnett authored
      A beamformer should provide a calibration function. Without it an
      application using the beamformer must implement its own and is of little
      use other than wanting to use predetermined weights. Considering this,
      adding the correlation infrastracture (dedicated array data,
      `d_cor_matrix` and others) as part of the rtbf context then makes sense.
      
      This also caused a change to the cublas structure to remove the generic
      `_A`, `_B`, and `_C` suffix naming to more specific naming for use.
      Providing a dedicated pointer-to-pointer interface for the correlation
      output data. Removing the need to reuse the `d_arr_C`.
      
      Having the allocations available along side the beamformer is also
      looking forward to want to provide real-time adaptive rfi cancellation.
      Because, this helps set them up to run together. Otherwise, reusing a
      memory region (`d_beamformed`) or the cublas context resources
      (`d_arr_A/C`) requires that resources be shared and reconfigured between
      the two operations.  Which would work but perhaps too complicated for
      what we want to do.
      42da418d
  18. 14 Jan, 2023 1 commit
    • Mitch Burnett's avatar
      create a correlator extension to the rtbf · 66e66ca4
      Mitch Burnett authored
      right now the correlator is implemented as an 'experimental extension'
      where the functionality is provided by leveraging the infrastructure
      provided by the rtbf. In most cases the correlator operates similar to
      the `BEAM_OP_RAW` mode of the beamformer with the exception of the
      output size and the inputs to a call to `cublasCgemmbatched()`.
      
      `init_correlator()` is functionally similar to `init_beamformer` except
      only relevant to `BEAM_OP_CORR` where the cublas context is constructed
      to prepare the data dimensions for the call to `correlate()`.
      
      The `run_correlator()` function is very similar also to
      `run_beamformer()` and looks again like when running `BEAM_OP_RAW`
      because it matches the requirements of copy onto device -> transpose ->
      matrix kernel (correlation instead of beamform) -> copy off teh device.
      The copy of device is conditional however. `run_correlator()` could
      really be operated inside `run_beamformer()` but to not take a penalty
      in a hit on the if statment that is not needed in the beamformer
      (because a copy off is always required) it would be better for now to
      just have a seperate method.
      
      The `corr_demo.c` is also functionally modeled the same as `rtbf_demo.c`
      except to just demonstrate the functions of correlation and conditionaly
      integration dumps.
      66e66ca4
  19. 11 Jan, 2023 1 commit
    • Mitch Burnett's avatar
      rtbf plugin def needed to build pipeline · b442f5be
      Mitch Burnett authored
      not completely sold on the `rtbf_plugin.h` as part of the rtbf. On one
      had it makes sense because it would be an extension that rtbf provides
      describing its data block size. But, on the other hand it would make
      sense to keep it closer to the thread code.
      
      update demo code for using 12 element per fid
      b442f5be
  20. 04 Jan, 2023 1 commit
    • Mitch Burnett's avatar
      Update build file, change defaults · 588a3f86
      Mitch Burnett authored
      Project uses configuration files to now send in parameters instead of
      defining parameters on the command line.
      
      Also changed to have the configure file only build if it is not a
      subproject. Otherwise the superproject will make sure to get the
      configuration file and set the parameters.
      
      Note that in current meson version that without an implementation of
      `get_gen_dependency_args()` the nvcc compiler does not track
      dependency changes (configuration parameter changes in the headers) and
      so a recompiliation results in a partial target rebuild. This requires
      the project be wiped or setup for a new build every time a configuration
      is changed with something like `meson --reconfigure`
      588a3f86
  21. 22 Dec, 2022 3 commits
    • Mitch Burnett's avatar
    • Mitch Burnett's avatar
      245d85a3
    • Mitch Burnett's avatar
      dimension changes and tests · c9f2f7fe
      Mitch Burnett authored
      number of elements was 160 when initially developing new rtbf. This was
      chosen because starting rtbf happened after re-learning xgpus
      limitations. A multiple of what looks like 32 is needed (although I
      remember being told it was 16) before the xgpu test program resulted an
      error of zero. Using 160 was the first multiple above the ALPACA spec of
      138 (although it would have been nice to be multiples of 16, so 144
      could be used -- but even then it may not have performed as well). But
      it became clear and an oversight on my part that 160 wouldn't work because
      ALPACA uses 12 f-engines and 12 doesn't divide 160. This pushed it up to
      192.
      
      The ALPACA spec is for 80 beams. Packing more than 80 beams was looked
      into when on the GBT. Geometries with beam spacing up to 96 beams was
      looked at.
      c9f2f7fe
  22. 20 Dec, 2022 1 commit
  23. 17 Dec, 2022 2 commits