Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 12GB/s from pyFAI?  https://www.silx.org/doc/pyFAI/latest/usage/tutorial/Parallelization/MultiGPU.html (see conclusion)
  • Stefano getting worrisome numbers for standalone angular integration (as low as 3GB/s but up to 50GB/s if we batch)
    • will run the profiler
    • pyFAI is not yet running on GPU: will work on that
  • Gabriel moved the GPU nodes to the FEE alcove xpm10. 
    • 1 free connection to xpm10 in the BOS
    • all streams are blocked on dma single-event-buffers, so need to create a separate stream to transfer calibration constants on beginrun
      • maybe make this "maintenance" stream permanent?
    • couldn't launch kernels on anything except default stream because cuda context hadn't been bound to CPU threads.  async GPU processes failed with no error.
    • set up basic skeleton for transferring the calibration constants to a  gpuMemPool (transitions, constants (maybe on the beginrun transition?)) and launches a dummy calibration on L1Accepts
    • did both the full serial number and a subset (2 segments) to fetch calibration 
    • calibration constant dictionary hierarchy: pedestal and gain array (one per gain range).  need status/geometry/.  could try to do something general?  map a python dictionary to a std::map?
  • Fundamental idea in CPU-DRP is a MemPool with a file-descriptor
    • changing it affects many things
    • put many file-descriptors in there?  not easy.
    • GPUMemPool and CPUMemPool
      • both inherit from base MemPool which inherits pebble/transitions
      • derived classes handle file-descriptor and dma buffers
      • the cudacontext broke the symmetry between the cpu/gpu side
    • separated mempool into a PGP side and a pebble side.
      • got cpu-drp to run with the new structure
      • tried on gpu-drp, but issues arose.  made progress over weekend.
      • missing a lot of code for multiple file descriptors