caffe開發過程中使用了哪些工具?

以caffe為例,在寫linux下代碼時使用了那些工具進行編輯,編譯以及調試?開發流程是什麼樣的?我剛剛開始linux下的軟體開發,想了解像caffe這樣的深度學習開源軟體是如何進行開發工作的。


還是挺標準的linux開發流程:

編輯器:vim(因為要遠程在伺服器上編輯)+ Sublime Text(本地編輯)
編譯:gcc + nvcc + Makefile
調試:gdb + cuda-gdb (cuda-gdb用得很少),valgrind
調試cuda代碼速度:nvvp
代碼管理:git + github

補充一些不是那麼相關的:
遠程ssh自動重連:mosh
命令行下多窗口:tmux
偶爾需要用到的vnc:TigerVNC server + Chicken (mac client)
本地多種環境的集成測試:docker(當年沒用到,後來開始用)
伺服器上的集成測試:Travis CI

主要用到的dependency:
glog:列印調試信息,這個對於調錯很有用。
gflags:命令行參數
gtest:測試框架
protobuf:數據的序列化
boost:一些類似C++11的feature,因為早期cuda不支持c++11
opencv:圖像處理函數
leveldb,lmdb:簡單的本地資料庫。
cuda:這個就不用說了
atlas/mkl/eigen:線性代數計算庫


Vim
Notepad++
Spyder
Nvidia伺服器


推薦閱讀:

Linux下的開源軟體有哪些有趣的玩法?
ATM 系統為什麼使用 Windows 而不使用 Linux?
驅動與固件的區別是什麼?

TAG:軟體開發 | 開源軟體 | 機器學習 | Linux 開發 |