mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-08 13:23:51 +00:00
Add changedocs for removing ArrayTransfer
This commit is contained in:
parent
90050b96e4
commit
1df732cdb3
@ -50,7 +50,7 @@ As explained below, `ArrayHandle` holds some fixed number of `Buffer`
|
||||
objects. (The number can be zero for implicit `ArrayHandle`s.) Because all
|
||||
the interaction with the devices happen through `Buffer`, it will no longer
|
||||
be necessary to compile any reference to `ArrayHandle` for devices (e.g.
|
||||
you won’t have to use nvcc just because the code links `ArrayHandle.h`).
|
||||
you won't have to use nvcc just because the code links `ArrayHandle.h`).
|
||||
|
||||
## Storage
|
||||
|
||||
@ -121,12 +121,12 @@ With the current version of `ArrayHandle`, if you want to take data from
|
||||
one `ArrayHandle` you pretty much have to create a special template to wrap
|
||||
another `ArrayHandle` around that. With this new design, it is possible to
|
||||
take data from one `ArrayHandle` and give it to another `ArrayHandle` of a
|
||||
completely different type. You can’t do this willy-nilly since different
|
||||
completely different type. You can't do this willy-nilly since different
|
||||
`ArrayHandle` types will interpret buffers differently. But there can be
|
||||
some special important use cases.
|
||||
|
||||
One such case could be an `ArrayHandle` that provides strided access to a
|
||||
buffer. (Let’s call it `ArrayHandleStride`.) The idea is that it interprets
|
||||
buffer. (Let's call it `ArrayHandleStride`.) The idea is that it interprets
|
||||
the buffer as an array for a particular type (like a basic `ArrayHandle`)
|
||||
but also defines a stride, skip, and repeat so that given an index it looks
|
||||
up the value `((index / skip) % repeat) * stride`. The point is that it can
|
||||
@ -165,7 +165,7 @@ this redesign, the data need to be stored in some fixed number of memory
|
||||
buffers.
|
||||
|
||||
This is a pretty open requirement. I suspect most data formats will be
|
||||
storable in this. The user’s guide has an example of data stored in a
|
||||
storable in this. The user's guide has an example of data stored in a
|
||||
`std::deque` that will not be representable. But that is probably not a
|
||||
particularly practical example.
|
||||
|
||||
|
19
docs/changelog/remove-old-array-transfer.md
Normal file
19
docs/changelog/remove-old-array-transfer.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Removed old `ArrayHandle` transfer mechanism
|
||||
|
||||
Deleted the default implementation of `ArrayTransfer`. `ArrayTransfer` is
|
||||
used with the old `ArrayHandle` style to move data between host and device.
|
||||
The new version of `ArrayHandle` does not use `ArrayTransfer` at all
|
||||
because this functionality is wrapped in `Buffer` (where it can exist in a
|
||||
precompiled library).
|
||||
|
||||
Once all the old `ArrayHandle` classes are gone, this class will be removed
|
||||
completely. Although all the remaining `ArrayHandle` classes provide their
|
||||
own versions of `ArrayTransfer`, they still need the prototype to be
|
||||
defined to specialize. Thus, the guts of the default `ArrayTransfer` are
|
||||
removed and replaced with a compile error if you try to compile it.
|
||||
|
||||
Also removed `ArrayManagerExecution`. This class was used indirectly by the
|
||||
old `ArrayHandle`, through `ArrayHandleTransfer`, to move data to and from
|
||||
a device. This functionality has been replaced in the new `ArrayHandle`s
|
||||
through the `Buffer` class (which can be compiled into libraries rather
|
||||
than make every translation unit compile their own template).
|
Loading…
Reference in New Issue
Block a user