Conversation
…on into pfgemv which will no more require to be labeled with PAR_BLOCK
…gemv-mp has been restructured for different parameter values
…r benchmarking fgemv in the rns field
…ervable speedup for rns fgemv
|
@ClementPernet Looks like all Travis builds are failing even on master. Have there been any updates in the configuration recently? |
| AC_PROG_SED | ||
| # newer libtool... | ||
| LT_PREREQ([2.4.3]) | ||
| LT_PREREQ([2.4.2]) |
There was a problem hiding this comment.
You should not have to change this
There was a problem hiding this comment.
I had to do so because I once got error with travis as if the libtool version was not corret. By changing the version to a lower number, I passed the travis compilation without the strange build failure.
| { | ||
| for (size_t j=0; j<N; ++j) { | ||
| const Givaro::Integer & x(A[i*lda+j]); | ||
| if (Givaro::absCompare(x,vmax[i])>0){ vmax[i] = x;} |
There was a problem hiding this comment.
Updating vmax[i] in each parallel task creates contention on every operation. This code is likely not parallel at all.
There was a problem hiding this comment.
Yes not so correctly parallelized but timing showed a few speedup. I cannot see any easier way to find the local max value for each thread then search for the global max value outside the parallel region.
| return Protected::fgemm_convert<Givaro::ModularBalanced<float>,Field>(F,ta,tb,m,n,k,alpha,A,lda,B,ldb,beta,C,ldc,H); | ||
| else if (!std::is_same<Field,Givaro::ModularBalanced<double> >::value && 16*F.cardinality() < Givaro::ModularBalanced<double>::maxCardinality()) | ||
| else if (!std::is_same<Field,Givaro::ModularBalanced<double> >::value && | ||
| !std::is_same<Field,Givaro::ModularBalanced<double> >::value && |
There was a problem hiding this comment.
why is this line duplicated?
There was a problem hiding this comment.
If I remember well, we did this together to correct some compile time error, but I could not remember of the exact reason.
Implementation of fgemv for rns with corresponding helpers