ledatelescope / bifrost

A stream processing framework for high-throughput applications.
BSD 3-Clause "New" or "Revised" License
64 stars 29 forks source link

Using bifrost with a digitizer #193

Open SBresler opened 1 year ago

SBresler commented 1 year ago

Is it relatively straightforward to plug in data from a digitizer with this package?

Let's assume I can get this stuff off the card and into CPU RAM.

The digitizer is connected over PCI-e. Not ethernet.

I am thinking the answer is "Yes," just making sure i understand the purpose of this program.

jaycedowell commented 1 year ago

If you can get the address of the memory then, yes, you should be able to convert that to a bifrost.ndarray instance in the Python API or a BFarray in the C++ API.

SBresler commented 1 year ago

OK. I have been using cupy for a lot of things and after getting nsight to work and tagging all of my stuff... it's just doing some stuff that I'm not so sure about.

for example:

If I do cp.ndarray = cupy.array(np.array)

I take that to mean that I already have an allocated cupy array, and I want to update it with the contents of another allocated numpy array, it should just point to the first element of the numpy array and do a memcpy using the pointer of the cupy array (making sure to check that the cupy and numpy array are C-contiguous and row major).

so I should see pci-e activity when I call cupy.array()

That's not what happens. So it's incentivizing me to go down a layer and do a little bit more memory management.