SetData is the only way to set the contents of a texture using the XNA Framework.
If you care about disk IO performance, using the Content Pipeline to read a precompiled .xnb file will be the fastest approach. But since you say you don't care about the IO side of things, all loading methods will be equal as they all ultimately end up calling SetData.
The only way to get data into a texture without calling SetData is to draw it to a rendertarget. That might be interesting if you could somehow use a pixel shader to procedurally generate your image, but isn't generally applicable.
DDS files are just a disk format, and don't mean anything to the GPU. I wonder if you're confusing the DDS file format with DXT texture compression? DXT compressed data is understood directly by the GPU, but DDS files can contain any format of texture data,, including DXT, RGBA, F32, etc. Regardless, DXT is very lossy and will not be appropriate if you need full floating point precision.
--
XNA Framework Developer
blog -
homepage