close #17 optimal opencl implementation. without optimization