The saying that you can't save someone who doesn't want to save themselves is entirely true. Sadly.
What you can do first is contact someone at NA (or another soberiety group), and ask their advice & experience and get their information (you'll need this later).
Then you can talk to your friend. Be frank and up front about your concerns. Regardless of his willingness to get help give him the local NA group's information. He will possibly get very hostile, be prepared for this. He might get very yeah yeah what ever as well and dismissive about your concerns. Be prepared for this as well. This is the line drawing - I'm happy to be around you sober but I can't be around you stoned, kinda talk.
Regardless of how this goes, you should contact his family. Give THEM the sobriety group's information as well and tell them their son has a damned problem and they need to intervene before he kills more of his brain cells.
After that point you've done all you can really do. If he's willing to clean up hen be willing to provide sober spaces for your friend (gym good, bar not so much), if he isn't... well he isn't ready to help himself and maybe rock bottom will be tomorrow when he doesn't have a place to live.