This is something that's been bothering me ever since I first saw the BLAS API. I think the "easy" solution would be to do a piecewise dot-product: call `dot` per 2GB block, add the results.