1 of 1 people found this helpful
1. OCL runtime takes care of it. When a scalar value is set by calling clSetKernelArg, the runtime copies the content from the host and place it to appropriate location (though exact time of placing may differ as runtime may choose to copy the data temporarily at some other location including system memory).
2. No. You need to wrap it with a buffer object even for a single value.