Yes, that's right.  It basically calls the original kernel that has a 2d iteration space and only populates the diagonal entries and puts them in a Function.