核心功能
智能行程规划 - 创建和管理旅行,自动生成行程
人工智能增强 - 通过多个大型语言模型提供者的建议来提升您的旅行体验
预算跟踪 - 通过可视化预算概览跟踪旅行支出
基于位置的建议 - 根据您的位置和预算获取目的地推荐
多币种支持 - 支持20多种货币并自动识别
行李清单生成器 - 根据旅行细节自动提供打包建议
年度规划器 - 以可视化日历的形式查看您所有的旅行安排
返回首页
最新
大家好——我正在进行一项简短的匿名研究调查,旨在了解导致意外基础设施支出的因素,以及团队真正重视哪些能力(例如,成本归属、每条路线的费用、前后影响、保护措施、标准修复)。<p>如果您在企业架构、平台或财务运营相关的角色中工作,我非常希望能听到您的意见。<p>调查(5-7分钟):https://tally.so/r/zx77eR<p>调查结束后,我很乐意将汇总结果分享给大家。联系信息在最后是可选的。<p>谢谢!
纳米香蕉演示编辑器
我分析了在一天内进行的8个Claude Code会话的JSONL日志。我原本预期计划好的会话会更高效,但没想到效率竟然提高了3倍。<p><a href="https://seanfloyd.dev/blog/claude-code-post-mortem" rel="nofollow">https://seanfloyd.dev/blog/claude-code-post-mortem</a>
嗨,HN,您在解决问题时自己想出的最复杂和精妙的算法是什么?
Gmail的主导地位似乎是由其投递能力、垃圾邮件过滤、可靠性和生态系统整合所驱动的。像ProtonMail这样的加密邮件服务提供商虽然提供了不同的权衡,但尚未实现主流采用。我很好奇Gmail的优势中有多少是技术层面的,多少是由于默认设置和用户锁定,以及加密邮件在不久的将来是否能够在类似规模上实现现实竞争。
我一直在碰壁:在 NumPy 或 PyTorch 中原型设计一些东西,然后为了边缘部署将其重写为 C++。重写的过程总是比最初的工作耗时更长。Eigen 的固定大小矩阵 API 无法映射到张量工作负载,xtensor 仅支持 CPU,且使用编译时模板类型,导致错误信息难以阅读,并且它们在 Mac 上都不支持 GPU。更糟糕的是,Eigen 的性能通常比 Python 版本还要慢,因为 PyTorch 打包了优化过的 BLAS,而 Eigen 则使用其自身有限的实现。
因此,我构建了 Axiom,使得重写过程变得机械化。该 API 尽可能接近 NumPy/PyTorch——相同的方法名称、广播规则、运算符重载、动态形状、运行时数据类型。在 PyTorch 中看起来是这样的代码:
```python
scores = Q.matmul(K.transpose(-2, -1)) / math.sqrt(64)
output = scores.softmax(-1).matmul(V)
```
在 Axiom 中看起来是这样的:
```cpp
auto scores = Q.matmul(K.transpose(-2, -1)) / std::sqrt(64.0f);
auto output = scores.softmax(-1).matmul(V);
```
没有心理翻译,也没有调试微妙的 API 差异。
箱子里的内容(28,000 行代码):
- 100 多个操作:算术运算、归约、激活函数(relu、gelu、silu、softmax)、池化、FFT、完整的 LAPACK 线性代数(SVD、QR、Cholesky、特征分解、求解器)
- 通过 MPSGraph 的 Metal GPU——所有操作都在 GPU 上运行,而不仅仅是矩阵乘法。编译的图形通过(形状,数据类型)进行缓存,以避免重新编译
- 无缝的 CPU ↔ GPU:`auto g = tensor.gpu();`——Apple Silicon 上的统一内存完全避免了复制
- 内置 einops:`tensor.rearrange("b h w c -> b c h w")`
- 跨架构的高速 SIMD(NEON、AVX2、AVX-512、SSE、WASM、RISC-V)
- 通过变体支持运行时数据类型(可读的错误,而不是模板爆炸)
- 默认行优先,支持通过 as_f_contiguous() 进行列优先
- 在 macOS、Linux、Windows 和 WebAssembly 上运行
在 M4 Pro 上的性能(与使用 OpenBLAS 的 Eigen、PyTorch、NumPy 比较):
- 矩阵乘法 2048×2048:3,196 GFLOPS(Eigen 2,911 / PyTorch 2,433)
- ReLU 4096×4096:123 GB/s(Eigen 117 / PyTorch 70)
- FFT2 2048×2048:14.9ms(PyTorch 27.6ms / NumPy 63.5ms)
尝试方法:
```bash
git clone https://github.com/frikallo/axiom.git
cd axiom && make release
```
或者通过 FetchContent 将其添加到您的 CMake 项目中。示例文件位于 examples/ 目录中。
欢迎提问有关内部实现的问题或对 API 的反馈。