2016/4/4 13:34:6翻牌: 3718临幸: 2
整体结构:主要有以下部分:net, blob, layer, solver.net.cpp:  net定义网络, 整个网络中含有很多layers,net构造函数中将所有layer按配置组装起来。net.cpp负责计算整个网络在训练中的forward, backward过程, 即计算forward/backward 时各layer的gradient。layer:  在protobuffer (.proto文件中定义message类型,.prototxt或.binaryproto文件中定义message的值) 中调用时包含属性name, type(data/conv/pool…), con...
2016/4/2 13:10:8翻牌: 6236临幸: 4
ps-lite是一个异步通信的参数服务器。主要提供push,pull,wait操作。ps-lite底层通信采用ZMQ实现。ZMQ是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ps-lite中van封装了通信操作。整体结构postoffice类对van进行了管理,管理了customer的信息,提供worker和server的id转换和查询。postoffice类以单例模式出现。customer类主要维护了request和response的状态,其中的tracker...
2016/3/25 10:13:7翻牌: 2227临幸: 0
技术向:一文读懂卷积神经网络Large Scale Distributed Deep Networks 中译文Scaling Distributed Machine Learning with the Parameter ServerCommunication Efficient Distributed Machine Learning with the Parameter ServerMore Effective Distributed ML via a Stale Synchronous Parallel Parameter Server常用  blas 函数An overview of ...
2016/3/24 14:1:8翻牌: 5720临幸: 11
    caffe-parallel通过参数服务器的方式对caffe进行了多机数据并行,底层通信采用MPI。下面记录一些看源码过程中的一些笔记,以免自己忘记。    caffe-parallel主要修改了solver.cpp net.cpp data_layer.cpp等几个文件。采用多线程的方式实现了参数服务器。0号处理器为参数服务器,有n个线程(n表示共有n个核),其中n-1个ComputeValueThreadClient线程分别对应其余n-1个核,用于异步的接收n-1个核上传来的参数,并向他们发送数据。剩余的n-1个核都是client。1个ComputeValueThreadServe...
2016/3/23 13:35:50翻牌: 1745临幸: 8
for day in xrange(monday, sunday):     I.think(whatToThink)一句写在博客head图片上的代码。子曰:饱食终日无所用心难矣哉。饱食终日无所正事的过了半余载。前三句竟然一般的长度。眼见要进入求职高峰却有种莫名的不安。虽然不喜欢现在无所务实的生活,却对工作并不渴求。越来越怀念大学时的自己,被各种比赛虐被各种题目虐,单纯而自在。以前的自己会用一天时间去写一个解自己手机上推箱子的几百行的c程序。现在的自己会用一天的时间看一季的《迷失》。以前的自己毕业时喝了一小杯白酒呛到不行。现在的自己喝了半斤多还把别人扶到了宿舍然后回去扶另一个人上车。以前的自...
2016/1/25 2:34:30翻牌: 2119临幸: 0
第一部分 基本charm++编程第二章 程序结构,编译和工具    charm++程序基本上是一个C++程序,其中一些组件描述其并行结构。串行代码可以使用任何编程技术,与C++工具链协作。这包括C和Fortran。用户代码中的并行实体是用C++编写的。这些实体与charm++框架通过继承类和函数调用进行交互。2.1 .ci文件    所有用户的程序组件,包括并行接口(如消息、chare,入口方法等)通过在单独的charm++接口(charm interface)描述文件中定义或描述他们来授予这一更高层状态。这些文件有.ci后缀,并采用了一个类似C++的声明语法,带有几个额外的关键字。在一些声明...
2016/1/8 14:28:42翻牌: 2923临幸: 0
写在前面一学期也没干成什么工作。每天拿半小时翻译一点东西,虽然也没什么用,养成一个习惯也不错。贴上原文链接http://charm.cs.illinois.edu/manuals/html/charm++/manual-1p.html。如有翻译或版权问题,欢迎留言。第一章  基本概念    charm++是一个基于C++的并行编程系统,它建立在可迁移对象的编程模型上,并且charm++被一个全新和强大的自适应运行时系统所支持。它支持常规或不常规的应用程序,也可用于在单个应用程序中特定的任务并行或数据并行。它可以通过独立的负载均衡套件自动的为任务并行或数据并行应用程序提高负载均衡。通过它的消息驱...
2015/12/7 12:0:20翻牌: 3249临幸: 5
地球之所以是圆的,是因为上天想让那些走失或迷路的人重新相遇。注定在一起的人,不管绕多大一个圆仍然会回到彼此身边。如果最后能在一起,晚点也真的无所谓。好久不见 你还好吗只是轻轻问候却藏着掖着满是思念不如不见这样也就不用去对你伪装当初只是都因为太任性没有人愿意去认输倦了一地的厌烦倒了时间的黑白最后选择了分开我已不是我你已不是你曾经以为你是我的惟一看到商店挂满橱柜的衣服有许多人都在试穿有太多人适合我便知道了这个世界没有独一无二黄昏吹着风的软时间总会把旧伤吹了过去了的感情不是面包无法充饥也不会发酵慢慢淡淡便好相逢也无需挽留只想轻轻问候一声好久不见 你还好吗转载,作者未知...
2015/12/3 7:23:43翻牌: 10222临幸: 0
    最近在移植一份神代码,遇到各种问题。好多个都是内存越界的原因。今天遇到了free(): corrupted unsorted chunks。以前也看过一点关于free是如何释放内存的东西,好久没写博客了,顺道写点吧,老玩也不是个事。    先说一下free(): corrupted unsorted chunks是什么原因。当要释放的内存在使用的时候发生了越界,将这块内存前后的一些信息改掉,就会发生这个错误。malloc和free在debug版下,会在分配的内存前后加上一些额外的信息。大体上是内存的前面32字节是一个结构体,里面记录了分配的内存的大小,4字节的校验位,以及其他信息。内存...
2015/9/6 14:11:15翻牌: 2680临幸: 7
.............................................