MCPcopy Create free account
hub / github.com/catboost/catboost / ColumnsView

Method ColumnsView

catboost/cuda/cuda_lib/cuda_buffer.h:168–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166 }
167
168 TCudaBuffer<const T, TMapping, Type> ColumnsView(const TSlice& columns) const {
169 CB_ENSURE(columns.Right <= ColumnCount);
170 TCudaBuffer<const T, TMapping, Type> buffer;
171 auto slice = GetObjectsSlice();
172 buffer.Mapping = Mapping.ToLocalSlice(slice);
173 buffer.ColumnCount = columns.Size();
174
175 for (ui64 i = 0; i < Buffers.size(); ++i) {
176 if (Buffers[i].NotEmpty()) {
177 const ui64 columnsShift = NAligment::ColumnShift(Mapping.MemoryUsageAt(i), columns.Left);
178 const auto devSlice = TSlice::Intersection(slice, Mapping.DeviceSlice(i));
179 buffer.Buffers[i] = Buffers[i].ShiftedConstBuffer(
180 columnsShift + Mapping.DeviceMemoryOffset(i, devSlice));
181 }
182 }
183 buffer.IsSliceView = true;
184 return buffer;
185 }
186
187 TCudaBuffer<T, TMapping, Type> ColumnsView(const TSlice& columns) {
188 CB_ENSURE(columns.Right <= ColumnCount);

Callers 2

StochasticDerMethod · 0.80
StochasticDerMethod · 0.80

Calls 10

ColumnShiftFunction · 0.85
MemoryUsageAtMethod · 0.80
ShiftedConstBufferMethod · 0.80
DeviceMemoryOffsetMethod · 0.80
ShiftedBufferMethod · 0.80
ToLocalSliceMethod · 0.45
SizeMethod · 0.45
sizeMethod · 0.45
NotEmptyMethod · 0.45
DeviceSliceMethod · 0.45

Tested by

no test coverage detected