In general, you can set NSSupportsAutomaticGraphicsSwitching in your Info.plist and stay on the integrated GPU.
This explains the various complications:
http://supermegaultragroovy.com/2016/12/10/auto-graphics-switching/
SDL already specifies NSOpenGLPFAAllowOfflineRenderers when creating GL contexts on the Mac, which means it just needs you to add the Info.plist setting to get the Mac to select the integrated GPU
Don’t switch to the software renderer (on the Mac, we will still use OpenGL to get the software-rendered pixels to the screen, which not only means you used the CPU to render and the discrete GPU to display it, but it’ll likely be slower than just using the integrated GPU for this due to bus transfers.
Metal is a whole different story, but that’s only for a (at the moment) non-default 2D render API backend.