Skip to content

Commit 426777d

Browse files
committed
increased allocation size of variables arrays
1 parent b66c0d9 commit 426777d

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

src/gpu/memory.cu

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,10 @@ uint32* cuMM::resizeLits(const size_t& min_lits)
113113
bool cuMM::allocHist(cuHist& cuhist, const bool& proofEnabled)
114114
{
115115
assert(inf.maxDualVars == V2L(inf.maxVar + 1ULL));
116+
const size_t varsize = inf.maxVar + 1;
116117
const size_t segBytes = inf.maxDualVars * HC_SREFSIZE;
117118
const size_t histBytes = inf.maxDualVars * HC_VARSIZE;
118-
const size_t varsBytes = (inf.maxVar + 1) * HC_VARSIZE;
119+
const size_t varsBytes = varsize * HC_VARSIZE;
119120
size_t min_cap = segBytes + histBytes + varsBytes;
120121
if (proofEnabled)
121122
min_cap += inf.maxDualVars;
@@ -148,8 +149,8 @@ bool cuMM::allocVars(VARS*& vars, const size_t& resolvedCap)
148149
assert(vars == NULL);
149150
assert(resolvedCap && resolvedCap < UINT32_MAX);
150151
vars = new VARS();
151-
const size_t uintVec_sz = inf.maxVar * HC_VARSIZE;
152152
const size_t varsize = inf.maxVar + 1;
153+
const size_t uintVec_sz = varsize * HC_VARSIZE;
153154
const size_t scores_sz = varsize * HC_VARSIZE;
154155
const size_t resolved_sz = resolvedCap * HC_VARSIZE;
155156
size_t min_cap = HC_VECSIZE * 3; // headers: (elected + units + resolved)
@@ -165,11 +166,11 @@ bool cuMM::allocVars(VARS*& vars, const size_t& resolvedCap)
165166
uint32* uintPtr = (uint32*)ea;
166167
vars->electedData = uintPtr;
167168
vars->electedSize = (uint32*)((addr_t)vars->elected + sizeof(uint32*));
168-
vars->elected->alloc(uintPtr, inf.maxVar), uintPtr += inf.maxVar;
169+
vars->elected->alloc(uintPtr, varsize), uintPtr += varsize;
169170
vars->unitsData = uintPtr;
170171
vars->unitsSize = (uint32*)((addr_t)vars->units + sizeof(uint32*));
171-
vars->units->alloc(uintPtr, inf.maxVar), uintPtr += inf.maxVar;
172-
vars->eligible = uintPtr, uintPtr += inf.maxVar;
172+
vars->units->alloc(uintPtr, varsize), uintPtr += varsize;
173+
vars->eligible = uintPtr, uintPtr += varsize;
173174
vars->scores = uintPtr, uintPtr += varsize;
174175
vars->resolved->alloc(uintPtr, uint32(resolvedCap)), uintPtr += resolvedCap;
175176
Byte* bytePtr = (Byte*)uintPtr;
@@ -190,8 +191,9 @@ bool cuMM::allocPinned(VARS* vars, cuHist& cuhist)
190191
{
191192
assert(vars);
192193
assert(inf.maxDualVars == V2L(inf.maxVar + 1ULL));
193-
const size_t elimBytes = inf.maxVar + 1;
194-
const size_t unitBytes = inf.maxVar * HC_VARSIZE;
194+
const size_t varsize = inf.maxVar + 1;
195+
const size_t elimBytes = varsize * sizeof(Byte);
196+
const size_t unitBytes = varsize * HC_VARSIZE;
195197
const size_t histBytes = inf.maxDualVars * HC_VARSIZE;
196198
size_t min_cap = HC_CNFSIZE + elimBytes + unitBytes + histBytes;
197199
assert(min_cap);

0 commit comments

Comments
 (0)