code: func (d DevicePtr) SetPtrAttribute(value unsafe.Pointer, attr PointerAttribute) error {
  	devPtr := C.CUdeviceptr(d)
  	a := C.CUpointer_attribute(attr)
  	return result(C.cuPointerSetAttribute(value, a, devPtr))
  }
docs: // SetPtrAttribute sets attributes on a previously allocated memory region.
  // The supported attributes are:
  //		SynncMemOpsAttr:
  //			A boolean attribute that can either be set (1) or unset (0).
  //			When set, the region of memory that ptr points to is guaranteed to always synchronize memory operations that are synchronous.
  //			If there are some previously initiated synchronous memory operations that are pending when this attribute is set, the function does not return until those memory operations are complete.
  //			See further documentation in the section titled "API synchronization behavior" to learn more about cases when synchronous memory operations can exhibit asynchronous behavior.
  // 			`value` will be considered as a pointer to an unsigned integer to which this attribute is to be set.