37 minutes ago, Pc6777 said:
does it just depend on the program because the split resources with hyperthreading do better in some tasks and suffer more in others?
Exactly. SMT lets tasks use different portions of the core together while the core hops around which task it does next. For example if there's one task that only cares about floating point performance, then because 1 thread is enough to fill up the entire floating point unit of a core, SMT wont help at all. If anything, the time spent on switching tasks can hurt performance.