OpenCL/OpenGL interop requires sudo privileges on Ubuntu 16.04

Hello. I was hoping someone could enlighten me on how I could get around the prerequisite of sudo access to run applications that require OpenCL/OpenGL interop.

Running OpenCL-only applications (like clDeviceQuery) works without sudo but when interop is involved I get a SIGSEGV (gdb backtrace snippet below)

(gdb) bt
#0  0x00007fffead37ea0 in ?? () from /usr/lib/nvidia-340/
#1  0x00007fffead2eea6 in ?? () from /usr/lib/nvidia-340/
#2  0x00007fffead2ef33 in ?? () from /usr/lib/nvidia-340/
#3  0x00007fffead2f319 in ?? () from /usr/lib/nvidia-340/
#4  0x00007fffeacec13b in ?? () from /usr/lib/nvidia-340/
#5  0x00007fff98710830 in ?? () from /usr/lib/x86_64-linux-gnu/
#6  0x00007fff987154d1 in ?? () from /usr/lib/x86_64-linux-gnu/
#7  0x00007fff987155b2 in ?? () from /usr/lib/x86_64-linux-gnu/
#8  0x00007fff985b283f in ?? () from /usr/lib/x86_64-linux-gnu/
#9  0x00007fff985b2db2 in ?? () from /usr/lib/x86_64-linux-gnu/
#10 0x00007fff9855b8d0 in ?? () from /usr/lib/x86_64-linux-gnu/
#11 0x00007fff9855b00d in ?? () from /usr/lib/x86_64-linux-gnu/

After spending almost a week fiddling with the program I finally realized it has something to do with memory regions when I ran the debug process from within valgrind and I saw

==12960== Warning: set address range perms: large range [0x200000000, 0x700000000) (noaccess)
==12960== Warning: set address range perms: large range [0x900000000, 0xb00000000) (noaccess)

I apologize if I posted in the wrong section but this seemed like a driver issue rather than a user code issue.

Thank you in advance for any ideas/suggestions.