The plan contains a convenience pointer that holds the RMS value on the device: hipCompress(scale, plan->d_rms, d_data, d_compressed,plan,user_stream) This design is awkward because the function already takes in the plan and hence it could read the RMS value from there. However, the copy function must take the RMS as user input because that gives the user control of whether they want to compute the global RMS or not. We have the following proposals:
- Keep as is.
- Always compute the global RMS value during the wavelet copy layout and store it in the plan. Remove the explicit output arguments for the RMS value in the copy and compression functions. Performance impact is expected to be negligible.
- Only remove the RMS output argument from the compression function.
The plan contains a convenience pointer that holds the RMS value on the device:
hipCompress(scale, plan->d_rms, d_data, d_compressed,plan,user_stream)This design is awkward because the function already takes in the plan and hence it could read the RMS value from there. However, the copy function must take the RMS as user input because that gives the user control of whether they want to compute the global RMS or not. We have the following proposals: