返回首页
24小时热榜
在开始之前,我想先澄清一些问题。
**强制性声明**:为了证明这不是另一个“LLM(大型语言模型)胡乱拼凑”的项目,我曾为SciPy做过类似的工作,并手动翻译了ARPACK、PROPACK、QUADPACK、ODEPACK以及其他一系列库(完整列表请见<a href="https://github.com/scipy/scipy/issues/18566" rel="nofollow">https://github.com/scipy/scipy/issues/18566</a>,约85K源代码行),那时LLM在这类工作上表现并不好。大部分翻译已经在之前的SciPy版本中发布,所以我希望这能为F77到C11的翻译工作提供一些可信度。现在LLM稍微有所改善,在LAPACK翻译中,我使用Claude Code作为某些任务的助手。公告结束。
-------- 现在我们回到正常的编程。
这是一个将著名的Fortran77线性代数库LAPACK翻译成C11的项目。如果您无法承受或不想依赖Fortran,这个项目可能会对您有所帮助。它仅使用CBLAS接口,以避免影响其他供应商的符号命名混乱(是否大写,是否有尾部下划线等)。有点争议的是,翻译采用的是从0开始的索引,除了错误代码。遗憾的是,`info = 0`表示成功,因此我们对此无能为力。
当前的测试覆盖率:LAPACK自己的测试套件(450K参数化测试也映射到C),NumPy测试套件和SciPy测试套件均通过。至少在最常见的算法中是可靠的。对于覆盖较少的算法,仍可能存在错误,因此我暂时将其标记为alpha版本。但如果您发现任何问题,请在仓库中提交问题。
此外,这使得在您的机器上或任何需要启用架构优化的地方编译OpenBLAS和LAPACK变得更加容易,并且生成的二进制文件更为精简。
如果您还想要一个即插即用的替代方案,提供了一个Fortran适配层,可以将包装器转换为1索引(这就是我测试NumPy/SciPy的方式),但会有一些性能损失。
如果您不喜欢默认的符号命名,您还可以根据自己的喜好添加前缀和后缀进行命名混淆。ILP64也得到了支持,如果您尝试与ILP64 CBLAS链接,它会在意外链接时发出警告,或者如果您提供标志,则会为您处理相关问题。
Netlib上的Doxygen文档版本总让我感到不适,因此我尝试了自己的版本。可以在这里找到:<a href="https://ilayn.github.io/semicolon-lapack/" rel="nofollow">https://ilayn.github.io/semicolon-lapack/</a>
我特别想看到的一个细节是同时查看所有四种变体;现在它们被分组如下:<a href="https://ilayn.github.io/semicolon-lapack/api/linear-systems/symmetric-indefinite/sytrf.html" rel="nofollow">https://ilayn.github.io/semicolon-lapack/api/linear-systems/...</a>如果我做得不够好,请告诉我,我仍在探索细节。默认字体,例如,确实需要一些改进。
为了防止无益的讨论,我想提几点:
- Fortran没有错。如果您喜欢它,就继续使用。我个人不太喜欢,虽然我非常喜欢Fortran77那个时代的版本,但对所谓的现代版本就没那么感冒。
- 这项工作与Fortran无关。它旨在服务于仅使用C工具链且不希望出现跨语言问题的特定受众。
- 这项工作希望吸引更多人来优化C代码,以实现共同利益。
文档中提供了更多的理由。
欢迎所有反馈和批评。
我第一次在Chrome上看到这个,决定在Safari中测试一下。结果非常相似。<p>我还将其与Facebook进行了比较,经过5分钟的故意滚动,最多消耗了650 MB,平均约为400 MB。<p>有没有网页开发者能解释一下LinkedIn和Facebook之间巨大的差异?看起来两者在信息流中的视觉信息量几乎相同,但LinkedIn的内存占用却高出5到7倍。<p>我查了一下,Facebook使用React和虚拟DOM,而LinkedIn使用Ember(我之前从未听说过这个)。难道只是因为Facebook在不再需要JavaScript对象时更有效地动态清除它们吗?
要获取深入介绍,请直接访问文章:<a href="https://makrell.dev/odds-and-ends/makrell-design-article.html" rel="nofollow">https://makrell.dev/odds-and-ends/makrell-design-article.htm...</a>
我想将范围限制在独立开发产品和服务方面。
1. 成本:我使用的是 Humanlayer,它使用 Claude 代码的 Go 二进制文件,并且我选择了最高级/专业计划。我的成本是有上限的。这种使用方式在中等程度上受欢迎吗?(我发现最高计划对我的使用来说是足够的。)但我担心 API 使用可能会太昂贵。有没有人可以根据使用情况和比较来评估这两种情况的成本与收益?
2. 我重视的另一个主要方面是可见性,例如在 WUI 中显示思维令牌、子代理的输入和输出。Humanlayer 和 Pi 都提供了这个功能。你使用哪一个,喜欢它的哪些方面?我发现 Humanlayer 使用 Claude 代码的 SDK 二进制文件在这方面表现得相当不错,尽管基于 SDK 的工具可能更容易编写测试工具。