Skip to main content

Posts

Showing posts from July 17, 2022

亚麻L6->买它E5 三个月感受

 几个月前我从亚麻(L6)跳到了买它(E5)。正式进组三个月了。感觉各方面都了解了一点,但是还是很不适应: 买它E5 亚麻L6 scope 虽然去之前也知道买它e5很多,甚至半个多组都是e5,没想到进去之后发现e5那么多。。而且scope跟麻6比真的小不少,只能慢慢建立trust。进去之前想的是拿sde3的钱做sde2.8的活,但是感觉要很久才能拿回l6的scope的活。 大于买它的5 spring planning/standup meta貌似没有spring planning.没有standup. 这个感觉对新人真的不是很友好:有时候不知道自己该做什么,不知道别人在做什么,有新的ad-hoc task没法用 spring planning的借口推掉。 大部分两周一次 的planning。太多时间耽误在planning, retro, standup。每两周要花4-6小时在这些上。 oncall oncall感觉很随便,每周oncall完,不好好总结,想办法降低ticket数量, 出个sev,随便搞几个task就过去了。 感觉有时候太serious。搞个coe。要层层review repo monorepo. 整个公司一共就几个repo。所有人的code都在一起。 code会莫名其妙被其他组用了,到了想migration的时候非常难。vs code ide跑在cloud,auto complete 经常不work。需要经常重启。 我进了了个写php, hack的组, 现在有点小后悔。 每个service一个pipeline。太多package要setup。用intellij。可以在cloud, 可以在 mac local culture bottom up.  除了个别的公司级别的项目, privacy, reel, 貌似很多都是底下senior想的,我虽然刚去,但是感觉很多计划中的都不是最重要的项目 (我瞎说的) top down. 大部分是上边来的 福利 3k gym. 50% 401k match. free food. etc 真的很大方 no free food, snack; 401k match vested after 3 years of service, no onsi...

Hitler uses Kubernetes

What is the difference between CMD and ENTRYPOINT in a Dockerfile?

  In Dockerfiles there are two commands that look similar to me: CMD and ENTRYPOINT . But I guess that there is a (subtle?) difference between them - otherwise it would not make any sense to have two commands for the very same thing. The documentation states for CMD The main purpose of a CMD is to provide defaults for an executing container. and for ENTRYPOINT : An ENTRYPOINT helps you to configure a container that you can run as an executable. So, what's the difference between those two commands?     2309 Docker has a default entrypoint which is /bin/sh -c but does not have a default command. When you run docker like this: docker run -i -t ubuntu bash the entrypoint is the default /bin/sh -c , the image is ubuntu and the command ...

GPU 渲染管线和硬件架构浅谈

    本文简述了 GPU 的渲染管线和硬件架构,对一些常见问题进行了讨论和分析。特此分享出来,与君共勉。当然,由于本人并未从事过硬件开发的工作,文中有错漏之处在所难免,欢迎批评指正。另外本文内容量很大,总结下来有以下几点核心内容:(1)移动平台渲染管线 TBDR 的介绍; (2)GPU 缓存体系的介绍;(3)Warp 的执行机制;(4)常见的如 AlphaTest 或者分支对性能的影响。 序言 联发科的工程师团队在对我们游戏进行了性能分析之后,建议我们将草地的 PreZ 移除掉试试,或许可以提高游戏性能。这与我们的传统认知有出入。但是印象中,确实有某些机器开不开 PreZ 差别不大。这个矛盾点促使我们对 PreZ 做了进一步的研究和测试。 在测试过程中我发现,如果对 GPU 的渲染管线不够了解的话,很有可能连测试用例都是错误的。所以后面又花了大量时间查阅了 GPU 硬件架构的资料。过去一些模糊的概念也变得清晰起来。 一、GPU 渲染管线 1.1 渲染管线简述 所谓渲染管线,就是 CPU 传送给 GPU 一堆数据(顶点、纹理等),经过一系列处理,最后渲染得出来一副二维图像。有以下几个阶段。 1.1.1 应用程序阶段 粗粒度剔除、渲染状态设置、准备数据。 我们在游戏引擎中所做的视锥剔除、遮挡剔除等,都是粗粒度剔除,是基于模型级别的。 这一步是在 CPU 进行的,后面的步骤都是在 GPU 内部进行的。 1.1.2 顶点处理阶段 顶点着色器、曲面细分、几何着色器、顶点裁剪、屏幕映射。 这里会做背面剔除等裁剪,确保只有真正需要绘制的图元才会进入光栅化。 顶点处理是可编程的(Vertex Shader,Geometry Shader 和 Compute Shader)。 1.1.3 光栅化阶段 三角形设置、三角形遍历、片元着色器。 光栅化引擎会将图元(Primitive)映射为与屏幕像素对应的片元(Fragment)。片元包含每个像素的坐标、颜色、深度、法线、导数、纹理坐标等信息。这个数据经过片元着色器的计算得到最终的颜色值。 像素处理是可编程的(OpenGL 中叫做片元着色器,Fragment Shader,DirectX 中叫做像素着色器,Pixel Shader)。这里通常是性能瓶颈所在,所以现代 GPU 做了很多的优化来尽可能避免执行无效的...