ddemidov / vexcl

Compare 5ec2f10 ... +0 ... 6ff7e17

Coverage Reach
vexcl/fft/unrolled_dft.hpp vexcl/fft/kernels.hpp vexcl/fft/plan.hpp vexcl/sort.hpp vexcl/backend/opencl/source.hpp vexcl/backend/opencl/filter.hpp vexcl/backend/opencl/kernel.hpp vexcl/backend/opencl/error.hpp vexcl/backend/opencl/context.hpp vexcl/backend/opencl/device_vector.hpp vexcl/backend/opencl/svm_vector.hpp vexcl/backend/opencl/event.hpp vexcl/backend/opencl/compiler.hpp vexcl/backend/opencl/image.hpp vexcl/backend/jit/source.hpp vexcl/backend/jit/kernel.hpp vexcl/backend/jit/context.hpp vexcl/backend/jit/compiler.hpp vexcl/backend/jit/device_vector.hpp vexcl/backend/jit/filter.hpp vexcl/backend/jit/event.hpp vexcl/backend/common.hpp vexcl/sparse/ell.hpp vexcl/sparse/distributed.hpp vexcl/sparse/csr.hpp vexcl/sparse/matrix.hpp vexcl/sparse/product.hpp vexcl/sparse/spmv_ops.hpp vexcl/spmat/hybrid_ell.inl vexcl/spmat/csr.inl vexcl/spmat/ccsr.hpp vexcl/spmat/inline_spmv.hpp vexcl/scan_by_key.hpp vexcl/operations.hpp vexcl/reduce_by_key.hpp vexcl/vector_view.hpp vexcl/stencil.hpp vexcl/scan.hpp vexcl/mba.hpp vexcl/vector.hpp vexcl/reductor.hpp vexcl/generator.hpp vexcl/spmat.hpp vexcl/tensordot.hpp vexcl/random.hpp vexcl/random/philox.hpp vexcl/random/threefry.hpp vexcl/temporary.hpp vexcl/tagged_terminal.hpp vexcl/logical.hpp vexcl/multivector.hpp vexcl/devlist.hpp vexcl/gather.hpp vexcl/profiler.hpp vexcl/detail/fusion.hpp vexcl/detail/backtrace.hpp vexcl/cache.hpp vexcl/eval.hpp vexcl/cast.hpp vexcl/multi_array.hpp vexcl/enqueue.hpp vexcl/vector_pointer.hpp vexcl/svm_vector.hpp vexcl/types.hpp vexcl/util.hpp vexcl/function.hpp vexcl/constant_address_space.hpp vexcl/constants.hpp vexcl/element_index.hpp vexcl/fft.hpp tests/spmv.cpp tests/vector_view.cpp tests/vector_arithmetics.cpp tests/sparse_matrices.cpp tests/multivector_arithmetics.cpp tests/stencil.cpp tests/generator.cpp tests/vector_create.cpp tests/sort.cpp tests/reduce_by_key.cpp tests/fft.cpp tests/deduce.cpp tests/vector_copy.cpp tests/scan_by_key.cpp tests/vector_pointer.cpp tests/temporary.cpp tests/events.cpp tests/tensordot.cpp tests/multivector_create.cpp tests/custom_kernel.cpp tests/tagged_terminal.cpp tests/random.cpp tests/mba.cpp tests/multi_array.cpp tests/context_setup.hpp tests/image.cpp tests/svm.cpp tests/cast.cpp tests/scan.cpp tests/threads.cpp tests/random_matrix.hpp tests/random_vector.hpp tests/types.cpp tests/eval.cpp tests/logical.cpp tests/context.cpp tests/reinterpret.cpp tests/constants.cpp tests/vector_io.cpp tests/dummy1.cpp tests/dummy2.cpp tests/boost_version.cpp CL/cl.hpp examples/devlist.cpp

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -87,8 +87,8 @@
Loading
87 87
        }
88 88
89 89
        std::vector<double>  data(i.size());
90 -
        vex::gather<double>  get(ctx, x.size(), i);
91 -
        vex::scatter<double> put(ctx, x.size(), i);
90 +
        vex::gather  get(ctx, x.size(), i);
91 +
        vex::scatter put(ctx, x.size(), i);
92 92
93 93
        get(X, data);
94 94

@@ -43,7 +43,6 @@
Loading
43 43
44 44
namespace detail {
45 45
46 -
template <class T>
47 46
class index_partition {
48 47
    public:
49 48
        index_partition(
@@ -88,8 +87,7 @@
Loading
88 87
} // namespace detail
89 88
90 89
/// Gathers vector elements at specified indices.
91 -
template <typename T>
92 -
class gather : protected detail::index_partition<T> {
90 +
class gather : protected detail::index_partition {
93 91
    public:
94 92
        /// Constructor.
95 93
        /**
@@ -103,12 +101,10 @@
Loading
103 101
        {}
104 102
105 103
        /// Gather elements of device vector into host vector.
106 -
        template <class HostVector>
104 +
        template <class T, class HostVector>
107 105
        void operator()(const vex::vector<T> &src, HostVector &dst) {
108 106
            using namespace detail;
109 107
110 -
            static kernel_cache cache;
111 -
112 108
            for(unsigned d = 0; d < Base::queue.size(); d++) {
113 109
                if (size_t n = Base::ptr[d + 1] - Base::ptr[d]) {
114 110
                    auto s = src.map(d);
@@ -124,12 +120,11 @@
Loading
124 120
            }
125 121
        }
126 122
    private:
127 -
        typedef detail::index_partition<T> Base;
123 +
        typedef detail::index_partition Base;
128 124
};
129 125
130 126
/// Scatters vector elements to specified indices.
131 -
template <typename T>
132 -
class scatter : protected detail::index_partition<T> {
127 +
class scatter : protected detail::index_partition {
133 128
    public:
134 129
        /// Constructor.
135 130
        /**
@@ -143,12 +138,10 @@
Loading
143 138
        {}
144 139
145 140
        /// Scatter elements of host vector to device vector.
146 -
        template <class HostVector>
141 +
        template <class HostVector, class T>
147 142
        void operator()(const HostVector &src, vex::vector<T> &dst) {
148 143
            using namespace detail;
149 144
150 -
            static kernel_cache cache;
151 -
152 145
            for(unsigned d = 0; d < Base::queue.size(); d++) {
153 146
                if (size_t n = Base::ptr[d + 1] - Base::ptr[d]) {
154 147
                    auto v = dst.map(d);
@@ -163,7 +156,7 @@
Loading
163 156
            }
164 157
        }
165 158
    private:
166 -
        typedef detail::index_partition<T> Base;
159 +
        typedef detail::index_partition Base;
167 160
};
168 161
169 162
} // namespace vex

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Coverage
tests 99.61%
vexcl -<.01% 94.82%
CL/cl.hpp 85.20%
examples/devlist.cpp 94.59%
Project Totals (114 files) 95.37%
Loading