CSS attribute Selector: responsive grid performance
You should do neither.  Not for performance reasons, but for semantic and maintenance reasons.  Having class names that reflect what the element looks like is an extremely popular anti-pattern.  It's convenient in the here and now, but every single instance of these classes in your markup will need to be changed when your design changes.

Related reading:  http://www.kapowaz.net/articles/cargo-cult-css

Furthermore, the concept of phone/tablet/desktop styles is extremely narrow thinking and is rarely appropriate for any design.

Related reading: http://bradfrost.com/blog/post/7-habits-of-highly-effective-media-queries/