Getting access to the data passed to solver

There is no way to achieve what you’re attempting with (1). The overhead is unavoidable, even with repeated models with slightly different inputs. That’s the way CVX is designed; not for speed but for your convenience. If you need to eliminate the overhead, your only choice is to bypass CVX altogether and perform the necessary conversions yourself.

The function that implements SDPT3 support is cvx_spdt3.m. I am afraid that no, there is no documentation, and I really can’t help you with it. But roughly speaking, cvx_run_solver is a simple wrapper around the actual call to sdpt3. If SDPNAL really does have the same calling interface, in theory, you could do a simple substitution of SDPT3 for SDPNAL.

For individual models, consider typing help cvx_solver_settings in the MATLAB command line. This provides a way for you to dump out the raw data being fed to your solver, and the output.