Earlier this month while attending the GPU Technology Conference (GTC) in San Jose, I was struck by the growth of deep learning and AI, and how it’s hit the mainstream in industries from finance to drones in warehouses. What’s becoming clear is that companies don’t have the resources to teach their applications or devices all they’ll need to know, so they want them to be able to learn on their own. This could be the mapping of a warehouse or the complexity of every changing stock rules and options.
To embrace this change, many companies are leaning heavily on frameworks like TensorFlow, which means typically, they are writing Python code that calls into C/C++. Python is a popular language for deep learning but debugging calls to existing C/C++ code in shared libraries can be extremely challenging. One of my conference sessions, How to debug machine learning call stacks, was about debugging mixed language Python and C/C++. It looked at how Python-C/C++ transformations combined with a multithreaded, multiprocess debugger help you understand what’s going on within your deep learning code. If you missed the session, you can view the slides online, or read this white paper.
While at the conference I also had the opportunity to participate in a developer tools panel, which generated some great discussion about the usage of tools across industries. It was quite interesting to learn that across various industries, teams are creating more multithreaded applications that deploy on CPU and GPU. They need integrated tooling that can look holistically at memory leaks, race conditions, and multiple languages. Given that both TotalView for HPC and CodeDynamics have support for these types of conditions we are excited for these changes in the application development space and look forward to the future.