works now and is actually faster than CPU impl.