He mentions having bank conflicts in shared memory, there is a simple trick to avoid that. You allocate an extra column for your shared buffers:
__shared__ float As[(CHUNKSIZE+1) * CHUNKSIZE];
If CHUNKSIZE is a power of 2 this will eliminate bank conflicts.