dnn: don't use aligned load without alignment checks
- weights are unaligned in dasiamprn sample (comes from numpy)
This commit is contained in:
parent
53b89e1ee4
commit
80d9f624d0
@ -347,7 +347,9 @@ public:
|
||||
if (!blobs.empty())
|
||||
{
|
||||
Mat wm = blobs[0].reshape(1, numOutput);
|
||||
if( wm.step1() % VEC_ALIGN != 0 )
|
||||
if ((wm.step1() % VEC_ALIGN != 0) ||
|
||||
!isAligned<VEC_ALIGN * sizeof(float)>(wm.data)
|
||||
)
|
||||
{
|
||||
int newcols = (int)alignSize(wm.step1(), VEC_ALIGN);
|
||||
Mat wm_buffer = Mat(numOutput, newcols, wm.type());
|
||||
@ -1299,7 +1301,6 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// now compute dot product of the weights
|
||||
// and im2row-transformed part of the tensor
|
||||
#if CV_TRY_AVX512_SKX
|
||||
|
||||
@ -81,6 +81,8 @@ void fastConv( const float* weights, size_t wstep, const float* bias,
|
||||
int blockSize, int vecsize, int vecsize_aligned,
|
||||
const float* relu, bool initOutput )
|
||||
{
|
||||
CV_Assert(isAligned<32>(weights));
|
||||
|
||||
int outCn = outShape[1];
|
||||
size_t outPlaneSize = outShape[2]*outShape[3];
|
||||
float r0 = 1.f, r1 = 1.f, r2 = 1.f;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user