I found that replacing imfilter(img,...) by imfilter(single(img),...) significantly speeds up the detection of keypoints. This is especially interesting with kp_log for which the time decreased from several minutes to 10 seconds in my case. This is due to the available Intel IPP library (as mentioned in the doc of imfilter).
This is a simple code for 2-d convolution, based on the built-in matlab routine for 2-d fft. You can write it easily yourself, but this code is pretty clean and straightforward.
For large matrices, filter2 or conv2 are v. slow in matlab for large matrices. This code leads to a considerable speedup, by a factor of 5-10 on my machine, when I convolve a 500^2 matrix with a 100^2 one.