My understanding of SMT is somewhat limited and certainly nowhere in detail, but isn't there a cost in using it? Such as reduced IPC and clockspeeds, along with higher power consumption? Please feel free to correct me if I am misunderstanding this.
Or am I totally wrong on this?
As a metaphor. Imagine you are in a kitchen and you are doing baking. And during the baking you have multiple electronic tools to speed up the process.
SMT is recognizing electronic kitchen tool A is not linked to electronic kitchen tool B which is not limited to electronic kitchen tool C. Thus if you have a baking job that is not using tool A or B for it is in tool C step of the pipeline it is okay to have a separate baking job utilize to use tool A and B but especially tool A. If you do not use tool A or tool B then the CPU is idling those parts of the CPU but not a perfect idle so you might as well utilize these resources.
-----
SMT is a trade off of trying to maximize die area and not waste die area with parts of the chip that are not being utilized by the job, but at the same time overbuilt SMT is wasting die area.
For example you are not limited to 2 threads per core SMT, but can do higher amount of threads per core than 1 or 2. 2010's IBM POWER7 are 4 threads per core, and 2014 POWER8 are 8 threads per core. But the thing you have to remember about POWER7 and POWER8 are they are very beefy cores, and doing something like that on Intel's Atom does not make sense. Sometimes it makes more sense to just add more cores and other times you want more threads per core to maximize die area. There is no magic ideal zone and it depends on the architecture and how it is designed and what trade-offs the architecture made.
I am sorry there is no always use this mental shortcut / mental shorthand on whether hyperthreading (a form of SMT) is better for you, or better for intel, or better for the other chip makers. Usually hyperthreading gives you more performance but sometimes it does not. Sometimes your software you are running wants an extra 100 mhz or 200 mhz for it is not well threaded and if you have a 4 ghz part 200 more mhz is 5%+ more performance. That said usually you can get more than 5% more performance via hyperthreading. Furthermore whether it is a power saver or power gainer is dependent on whether you can get that extra performance without increasing the voltage for when you double the voltage you quadruple the power consumption (if you keep the ghz constant) and thus a 1.1x increase in voltage is a 21% increase in power consumption. Thus whether it saves power or not is dependent on whether does increasing more mhz will cause you to need to increase the voltage faster, or does adding hyperthreading allow you to keep the mhz low, and keep the voltage low, but increase better utilization of the core and thus increase IPC for the same clockspeed.