If I'm using two different models of cards; what happens?
If you use two instances of sgminer, each from its own directory*, and run them with switches --device or --profile-device (depends on your config) where argument of the switch points explicitly to a device, everything should be ok.
*-by default kernel file will be created (and then replaced with mod) in the directory from which the binary was called. For instance, if you use a script to call the sgminer binary with params in the same directory in which the binary is, that's the dir where kernel file will be created on the first run. But, if you call a script which points to the binary in a different dir, kernel file will be created in the script's dir.
For testing purposes, my suggestion is that you have two sgminer dirs, in which you create configs for each card respectively, and in them you use caller scripts with params. Each binary will create it's own kernel file in it's own dir, which you replace and rename.
Note; if your cards have the same kernel type, you could use them both with one sgminer instance and one modded kernel. But I don't have this kind of a setup, so I can't confirm.