Debit and credit cards seem to give the best rate. Check with your bank. While US cash is accepted close to the border it gets harder to use when you go more north and the rate of exchange, if you find someone who accepts it, will be horrendous because the merchants have to pay services charges to get rid of it.
If your debit card has a good rate, most large stores like Walmart and grocery stores will give cash back at time of purchase which avoids ATM fees.
We travel this way when we head to the US and works very well going the other way also.
Your cards will be good just about everywhere but it is handy to have $100 to $200 cash for the places that don't have card capabilities.