• Re: 中国有伟大的公司吗?

    国家电网?

    前天 02:41
  • Re: 星际译王词典下载网站需要捐赠!

    ldoce有第三方做的viewer, 支持Linux。

    星期三
  • Re: [转载]筋疲力尽的开源开发者

    我是领工资的开源开发者。

    星期二
  • Re: 星际译王词典下载网站需要捐赠!

    大师你可以写书啊,传播正念。我们都可以愿意买。版税拿来支持星际译王的运营

    星期二
  • Re: [讨论]如果没有自然数是无限数,自然数集合的定义是不是矛

    你忽略了结构。

    【 在 upndown 的大作中提到: 】

    : 甚至自然数集和有理数是一个集合

    星期二
  • Re: [讨论]如果没有自然数是无限数,自然数集合的定义是不是矛

    是你没搞清楚,不是我们没搞清楚。

    Set theory和category theory 都有讲到自然数的构造。比如你要明白,所有自然组成的集合和所有大于3的自然数组成的集合其实是一个集合,它们之前存在一一对应的关系。所以不失一般性,我们选取其中的一个定义为我们平时所说的自然数集合。

    【 在 niceboy086 的大作中提到: 】

    : 这个是不是说 从有限到无限之间我们没有搞清楚啊? 其实我们还是在有限这个范围内活动,点到线之间、线到面之间、面到立体之间到底是个什么样子 我们并没有刻画出来

    星期一
  • Re: 觉得对不起孩子

    不是这样的。每个小孩都会想要一些特别贵的东西。比如我小时候站在商场门口非要妈妈给我买酒心巧克力,那时候还是80年代。然后我逐渐懂了钱不是天上掉下来的,都是父母辛辛苦苦挣来的,不能浪费不能乱花钱。

    这是人生必上的一课。

    不管你挣多少,10万也好,100万也好,都会遇到这样的事情。每个人都需要懂得量入为出。

    【 在 jomalone 的大作中提到: 】

    : 一觉起来十大了,心情有点五味杂陈。晚上睡觉前一点情绪吧,发到了版上。看到版友的回复,共情的、鼓励的、批评的都有,还有热心版友要寄送,好意在此表示感谢了,只是无功不受禄。只买一斤30元的车厘子,30元钱还是有的,只是作为一个年收入只有10万出头要抚养小的赡养老人的单亲妈妈,长期以来比较节俭的习惯让我下意识的否定了孩子的愿望。水木上都是社会中产以上人群,只是社会上确实有很多人收入不高,我都不知道怎么混进水木的,给水木丢脸了。感谢有的版友的建设性建议,比如用买砂糖橘的钱买少许车厘子让孩子既能尝鲜也明白了虽然东西贵但是妈妈爱他。更感谢版友提醒我的,虽然物质上不宽裕,但是对孩子的爱和陪伴应该多点,让他不会因为物质匮乏自卑,以后到社会上总觉得自己不配拥有好东西。我从小家庭条件就很一般,成年后确实有自卑,形成了讨好型人格,希望孩子能传承我的优点,避免我的缺点,快乐成长。再次感谢大家,让我在寒冬中感受了些许温情。

    星期一
  • Re: Linux系统电脑能给孩子上网课吗?

    Zoom和Microsoft Teams都可以。我天天用。

    星期一
  • Re: 可执行程序正在执行不能被覆盖怎么解决?

    试试这个命令: https://linux.die.net/man/1/install

    01月05日
  • Re: 我也发一个减肥五十斤对比图哈

    顶着锅盖说一句:人一旦胖过,就算瘦回来了,皮也是松的,看起来像苍老了10岁一样,永远也不回不到最初。

    (别问我怎么知道的,55555)

    01月01日
  • 强烈推荐几个研究生阶段的公开课

    油管上搜Richard E. BORCHERDS。有交换代数和代数几何的全套课程。他是伯克利的教授。

    2020-12-30
  • 如何成为一名优秀的程序员

    1.    对计算机科学天生就有浓厚的兴趣

    这种人对自己的付出不计回报,不在乎一天需要在电脑前工作多少个小时,也懒得跟人争论996是不是福报。喜欢就是喜欢,编程就跟打游戏一样爽。

    2.    进入一所世界名校学习计算机及相关专业

    我发现学校和学校之间的差别还真的是特别大,环境不对,再努力都是枉然。我主要有两点:1、课程的深度 2. 老师的insight。普通高校老师上课的时候讲的不能太深,不然大多数学生都听不懂也跟不上。我举个例子,伯克利计算机专业的学生很多都会在本科的时候选修数学专业的博士一年级的数学专业基础课,而那些数学课连清华北大的数院都开不起来,那清华北大的学生又如何有机会去学呢?而这些还只是为了复杂性理论、机器学习之类的课打基础罢了。另外一方面,去大学里上课不光是学习课本上那些知识,另外很重要的一点是跟那些特别优秀的人学习他们对某些事情的见解以及分析问题的方法。大方向错了,再努力都是白费。于是名校以及大师就很重要。

    在刚毕业的前几年,是不是名校差别不大,人人都可以刷题进大厂。但是,最终谁能在individual contributor的道路上走的更远,这还是取决于大学里的这些基本功。

    3.    啃大部头著作和那些经典论文

    比如《算法导论》、《TAOCP》、《计算机体系结构:量化研究方法》、《Advanced Programming in the Unix Environment》、《TCP/IP Illustrated》三本、《编译原理》龙书、《C++ Primer》、《An Introduction to Statistical Learning》。这每一本书1000多页以上,每本都非常非常耗时间的。如果能把这些书读完,大学四年就别的啥也干不了了。但是一分耕耘一份收获,正是这些东西造就了人与人的差距。

    4.    毕业后进入一个大公司,摊上一个好项目

    搞分布系统的,如果没有上万台机器的集群可供实验,他怎么能懂得preemptive scheduling和federation,他根本就没有机会去想怎么优化调度器的性能。搞online serving的,得有每天上亿的requests去练手。搞machine learning的得有真实的用户,这就好比光去干巴巴的分析股票的历史数据不可能成为优秀的交易员,得实际的去操作。

    写了这么多大概就想说明一件事情:这行没有“输在起跑线”上一说。冰冻三尺非一日之寒,如果没有非常强的兴趣和毅力,根本就无法长久坚持下去。

    2020-12-30
  • Re: [转载]Paragon发布最新的Linux NTFS文件系统补丁程序

    所以那个商用的free了?

    2020-12-27
  • Re: 非线性最小二乘法,有比较熟悉的吗?

    导数能求出来吗?

    2020-12-23
  • Re: 向各位同学推荐一下blas和lapack

    不过不管怎么说,我写不出eigen这么好的东西。让我再练10年或许有可能。

    【 在 Dieken 的大作中提到: 】

    : eigen被你黑的要死,哈哈

    2020-12-20
  • Re: 向各位同学推荐一下blas和lapack

    推出新的指令,直接操作8位或者16位的浮点数、整数进行运算。

    假如原本每秒能进行1T次32位浮点数运算,那么换成16位后就能达到2T次或者更多,但是带来的麻烦就是精度损失,结果一定会失真。

    https://docs.nvidia.com/deeplearning/performance/mixed-precision-training/index.html

    我觉得这也是无奈之举。要是硬件性能还能继续2-3年翻一倍,谁有心思搞这个啊。

    【 在 Dieken 的大作中提到: 】

    : > 现在大家纷纷往16bit、8 bit上走

    : 啥意思?

    2020-12-20
  • Re: 向各位同学推荐一下blas和lapack

    那些算法库还是挺难的。尤其是某些细节。比如原生的blas对cray supercomputer的支持是没问题的,但是如果你用C++重写一遍,你恐怕连测试的环境都没有。关键是个别细节,是很微妙的东西。

    【 在 Dieken 的大作中提到: 】

    : 程序员盛行不纯不舒服斯基血统……

    : 如果怕 bug 所以不造轮子,这是不可能的。要说难吧,就一些算法库,也不是啥互联网产品需求天天变要干啥干了啥都想不清楚。

    : 可能是投入产出比太低了?

    2020-12-20
  • Re: 向各位同学推荐一下blas和lapack

    应该挺容易替代的。

    这就好比尽管Google有人把gnu make用更现代的语言重写了一遍,但是没人用啊。好像大家并没有很大的动力去替换现在已经用的好好的东西。

    【 在 Dieken 的大作中提到: 】

    : eigen被你黑的要死,哈哈

    : 这些fortran千年老妖为啥没人出手用C/C++/Java/Rust替代它?

    2020-12-20
  • Re: 阅读源码有什么心得没有?

    同上。

    看不懂就Debug,比干读省很多时间。

    2020-12-18
  • 向各位同学推荐一下blas和lapack

    我最近读了点它们的代码,感叹下实在是太棒了。

    Blas的全称叫Basic Linear Algebra Subprograms,是一套数值计算的基础库。主要用于做矩阵、向量之间的加法乘法等。Lapack相当于是BLAS的扩展,在其上提供了更多的功能。BLAS就像BSD socket一样,历史悠久,时至今日已经成为事实上的标准。最有名的实现就是MKL和CuBlas,性能最好。不过我这里要推荐的是原生的那个,netlib BLAS。

    有本书是专门介绍BLAS和Lapack函数背后的原理的,叫《Matrix Computations》,作者之一是Gene H. Golub。这本书写的浅显易懂,非常工程化,适合学过线性代数的程序员看。这本书虽然写于1983年,但是时至今日丝毫也不过时,依然是经典中的经典。Gene H. Golub这人是斯坦福的教授,Donald Knuth的同事。矩阵分解算法中大名鼎鼎的SVD就是 Golub和William Kahan搞出来的。这种大师写的书,水平可想而知。

    William Kahan发起并主导制定了IEEE浮点数标准。他对CPU体系结构的认识,是我们远远无法望其项背的。浮点运算及误差分析,100个程序员里有99个都搞不明白。我不知道William Kahan是否有参与BLAS项目,但是他的学生James Demmel是该项目的核心成员之一。James Demmel是美国三院院士,加州大学伯克利分校计算机学院曾经的院长,现在一边教书,一边接替他老师的工作继续引导制定新一代的浮点数标准,同时还在活跃在BLAS和Lapack的开发一线,并且给matlab等公司做技术咨询。James Demmel跟一般我们认识院士不太一样,他的工程能力很强,编程的能力远远超过Google、微软的高级程序员。他们是跟那些发明BSD、VI的人在一个教室里上课的,一个比一个硬核。(现在这些人又在搞RISC-V。)

    而BLAS就是他们当年给美国国防部、能源部等做项目的时候写的数学库,跑在全球top10的超级计算机上。由于这些项目都是秘密开发的,所以具体谁写的哪块代码就无法查证了。所以我不知道William Kahan这样的人有没有具体去写代码,但是做指导肯定是有的。

    (以上不仅仅是历史,时至今日这一切都还在继续)

    BLAS和LAPACK的代码质量非常高。BLAS从50年前用到现在,可以说在各种硬件环境上都验证过了,什么样的CPU有什么样的BUG,对BLAS的作者们来说耳熟能详。BLAS和Lapack的测试用例非常完善。我最近空闲时间喜欢做的一件事情就是把lapack中的一些代码替换掉,用C++重新实现,然后套回去跑lapack原本的测试用例。主要的目的是为了理解那些算法背后的实现。我觉得这是很有效的学习方式。

    虽然说BLAS是fortran  77写的,我不懂fortran。但是我发现想要看懂fortran的代码还是蛮容易的,这个语言很小巧简单,最多一下午的功夫就可以学完基础语法了。然后就可以像我那样去翻译fortran代码到C++。

    不过它的效率并不高,代码并没有经过细致的性能优化,所以实用价值不大,主要还是为了学习。实际用起来还是MKL之类的更好,但是MKL不开源。现在真正前沿的是JIT。不过吧,Google在这个领域投入了4-5年了,也没见什么成果,至少在CPU上没搞出什么有效的优化来。但是我觉得这条路肯定是对的,Google和Intel都在往这个方向走。但是你想啊,这世上有几个人能给编译器写codegen,有几个人能做的比GCC更好?既懂编译原理又懂数值计算的人,去哪找?

    应用:

    机器学习里最基本并且最耗时的操作就是矩阵运算。虽然开源界机器学习框架已经百花齐放,选择很多,但是真正懂数值计算的人少之又少。要么那个基础库本来性能就很差(比如eigen),要么集成起来很难(比如MKL)。同时挑战又很多,现在大家纷纷往16bit、8 bit上走,各种新硬件五花八门,甚至还有人用FPGA自己从头实现浮点数。不管是从硬件层面还是从理论层面,所需要解决的问题都很多。然而如果你不了解过去这条路别人是怎么走的,那就只能凭一己之力蛮干了。

    2020-12-18