1作者: cyberneticc2 个月前原帖
我一直在思考“氛围编码”对软件开发的影响。 想象一下一个两阶段的方法:首先,业务用户与人工智能编码助手合作,指定并创建功能原型,而无需编写代码(“氛围编码”);然后,开发人员接手重建并将这些原型投入生产。 这可能会: - 通过绕过传统的需求收集,加快初始开发速度 - 让业务用户能够直接将他们的需求以可工作的原型形式表达出来 - 使开发人员能够更专注于架构、性能、安全性和复杂功能 - 促进业务团队与技术团队之间更具协作性的关系 这只是一个不理解软件开发运作的普通软件用户的天真想法,还是说这种氛围编码的应用真的能够改变现有的工作方式?
2作者: ttmuncher2 个月前原帖
我不确定这是否是职业倦怠、抑郁、完全正常的状态,还是其他什么原因。 目前,我感觉自己的生产力大幅下降。大约只剩下2016年的20%左右。我也比以前更容易拖延。 我早期对开发的热情已经减退了很多。并不是我不喜欢这份工作,我真的很喜欢。没有其他活动我更愿意去做。 从2017年开始发生了很多事情(被裁员、孩子被诊断为四期癌症、母亲去世、姐姐去世等等)。 好的一面是,在2017年被裁员后,我的副项目变成了一家正式的公司,从那时起我一直靠它生活(收入大约是湾区薪水的两倍)。所以“工作”并不是问题。 我希望能更多地投入到我的业务中并发展它。我也想做一些副项目(也许是一个游戏,或者其他商业创意等等)。 写这些听起来很荒谬,但我坐下来时似乎做不了多少。几个小时过去了,我几乎没有做任何事情。 有人经历过这种情况吗?这是职业倦怠吗?有什么办法可以解决这个问题吗?
6作者: ashvardanian2 个月前原帖
今年早些时候,我花了一个月的时间重新审视我的编码习惯,并重新思考一些过去的设计选择。我希望在今年重写并改进我的开源软件库,但首先我需要对几个问题找到答案。也许这些问题会引起社区其他人的共鸣。 - 协程在高性能工作中可行吗? - 我应该使用SIMD内建函数以提高可读性,还是直接使用汇编以便于库的分发? - 硬件是否已经跟上了AVX-512和SVE中的向量化散布/聚集? - 在Intel、Arm和AMD上,安全区和指针标记有什么不同? - CPU和GPU张量核心(TCs)之间的吞吐量差距有多大? - 不对齐的内存访问和分段加载的成本有多高,非时间性加载/存储能带来什么收益? - 标准库的哪些部分对性能影响最大? - 错误处理策略在开销上如何比较? - 惰性求值范围的编译时间与运行时间之间的权衡是什么? - 元编程有哪些实际的、非平凡的用例? - 使用io_uring与POSIX套接字进行Linux内核绕过有多困难? - 我们在有效使用C++中的网络技术规范或异构执行器方面还有多远? - 在嵌套容器中传播有状态分配器的最佳实践是什么,哪些库支持它们? 这些问题涵盖了从微内核优化(纳秒级)到分布式系统(微秒/毫秒延迟)的广泛主题。与其在一篇文章中一一解决这些问题,我将我的探索汇编成一个代码库——扩展了我之前的Google Benchmark教程(<a href="https://ashvardanian.com/posts/google-benchmark" rel="nofollow">https://ashvardanian.com/posts/google-benchmark</a>)——作为性能实验的沙盒。 一些有趣的观察: - 编译器现在能够很好地向量化3x3x3和4x4x4的单精度/双精度乘法!尽管操作数少了70%,较小的乘法速度仍然慢了约60%,但它的性能超越了我普通的SSE/AVX,并且接近AVX-512的10%。 - Nvidia的张量核心在不同代际之间在数值类型、吞吐量、瓦片形状、线程同步(线程/四元组/波/波组)和操作数存储方面差异显著。后Volta时代,通常需要手动编写PTX(因为内建函数滞后),尽管新推出的TileIR(在GTC上介绍)承诺能改善密集线性代数内核的性能。 - AI浪潮推动CPU和GPU在矩阵乘法吞吐量和编程复杂性上趋同。我花了一天时间调试TMM寄存器初始化,SME同样奇怪。Sierra Forest每个插槽有288个核心,而AVX10.2则放弃了对256位的支持,转而支持512位……我在想,考虑到CPU的进步,独立的Intel GPU是否真的有必要? - 在常见的浮点范围内,标量正弦近似的速度可以比标准实现快多达40倍,即使没有使用SIMD。不过,这有点不够严谨;我希望更多的项目能记录误差界限,并提供像Sleef那样的1和3.5 ULP变体。 - 像CTRE这样的元编程工具可以比典型的正则表达式引擎快5倍,并且在构建解析器时比手工编写的有限状态机更简单。 - 曾经在复杂性和性能上明显不同的DPDK/SPDK与io_uring之间的差距正在缩小。虽然5.5之前的io_uring可以在回环IO上将UDP吞吐量提升4倍,但新的零拷贝和并发优化仍然具有挑战性。 这个代码库中包含了我最喜欢的CppCon讲座、GitHub代码片段和技术博客文章的链接。认识到许多高级概念在不同语言中处理方式不同,我还开始将示例移植到Rust和Python的独立代码库中。协程在各处看起来都不太好 :( 总体来说,这个研究项目非常有收获!大多数问题在代码中找到了答案——除了指针标记和安全区,这在公共云中仍然让我困惑。我很想听听其他人的看法,特别是在比较FPGA上小矩阵乘法的高级综合与手写的VHDL/Verilog在整数类型上的表现方面。如果你有其他有趣、冷门的话题想讨论,请告诉我!