How about tossing a bunch of boats into the build volume and shaking it? Use a sand/particle simulation to fit them together, seems amenable to the GPU.
If passing through one another is allowed during the physical simulation, this is just a CPU-heavy simulated annealing. If not, you won't reach solutions that are "far away" from your initial condition in terms of number of passes required to reach it.