MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / AParam

Class AParam

src/backend/oneapi/Param.hpp:49–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47
48template<typename T, sycl::access_mode AM>
49struct AParam {
50 sycl::accessor<T, 1, AM, sycl::target::device,
51 sycl::access::placeholder::true_t>
52 data;
53 af::dim4 dims;
54 af::dim4 strides;
55 dim_t offset;
56 AParam& operator=(const AParam& other) = default;
57 AParam(const AParam& other) = default;
58 AParam(AParam&& other) = default;
59
60 dim_t* dims_ptr() { return dims.get(); }
61 dim_t* strides_ptr() { return strides.get(); }
62
63 // AF_DEPRECATED("Use Array<T>")
64 AParam() : data(), dims{0, 0, 0, 0}, strides{0, 0, 0, 0}, offset(0) {}
65
66 AParam(sycl::buffer<T, 1>& data_, const dim_t dims_[4],
67 const dim_t strides_[4], dim_t offset_)
68 : data(data_), dims(4, dims_), strides(4, strides_), offset(offset_) {}
69 // AF_DEPRECATED("Use Array<T>")
70 AParam(sycl::handler& h, sycl::buffer<T, 1>& data_, const dim_t dims_[4],
71 const dim_t strides_[4], dim_t offset_)
72 : data(data_), dims(4, dims_), strides(4, strides_), offset(offset_) {
73 require(h);
74 }
75
76 template<sycl::access::mode MODE>
77 sycl::accessor<data_t<T>, 1, MODE> get_accessor(sycl::handler& h) const {
78 return *data;
79 }
80
81 void require(sycl::handler& h) const { h.require(data); }
82
83 operator KParam() const {
84 return KParam{{dims[0], dims[1], dims[2], dims[3]},
85 {strides[0], strides[1], strides[2], strides[3]},
86 offset};
87 }
88
89 ~AParam() = default;
90};
91
92// AF_DEPRECATED("Use Array<T>")
93template<typename T>

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected