返回首页
最新
Tenmo
一个用纯Mojo编写的轻量级张量库和神经网络框架。<p>https://github.com/ratulb/tenmo<p>Tenmo专注于:<p>SIMD优化
显式内存布局
零拷贝视图
一个简约但实用的自动求导系统
状态:Tenmo与Mojo本身一起发展。
API可能会发生变化。目前尚未准备好用于生产环境。<p>性能
MNIST(4层多层感知器,105K参数,15个训练周期)
平台 设备 平均每个周期 总测试准确率
Tenmo CPU(Mojo) 11.4秒 171秒 97.44%
PyTorch CPU 14.5秒 218秒 98.26%
PyTorch GPU(Tesla T4) 15.2秒 227秒 97.87%
备注<p>Tenmo在连续缓冲区上使用SIMD向量化内核。
在MNIST运行中未使用BLAS——所有操作均作为纯Mojo代码执行。
对于这种规模的模型,GPU开销占主导地位;更大模型更能从GPU加速中受益。
快速示例
```python
from testing import assert_true
from tenmo import Tensor
fn main() raises:
var a = Tensor.d1([1.0, 2.0, 3.0], requires_grad=True)
var b = a * 2
var c = a * 3
var d = b + c
d.backward()
assert_true(a.grad().all_close(Tensor.d1([5.0, 5.0, 5.0])))
```
非常感谢您的反馈!
获取个性化指导、即时解释和适合您学习风格的自适应练习。告别孤军奋战——与您随时可用的AI学习伙伴一起掌握任何学科。今天就免费开始,无需信用卡。
嗨,HN,我创建了一个简单的基于浏览器的工具,可以快速对图像应用各种模糊效果。
我经常需要遮盖敏感信息或为用户界面原型创建模糊背景,但不想将文件上传到服务器或打开 Photoshop。这个工具完全在客户端运行。
主要功能:
- 批量处理:可以一次上传和下载多张图片。
- 多种模式:包括高斯模糊、像素化(适合遮盖)、运动模糊、径向模糊和噪声模糊。
- 精细调节:可调节强度滑块。
这个工具是免费的,不需要登录。我很想听听你们对用户体验的反馈!
我对Highspot和Seismic收取数千美元仅仅为了将文件集中存放和跟踪谁打开了这些文件感到厌倦和沮丧。
这些公司根据员工人数收费,员工越多,价格越高。这使得初创公司和小团队被排除在外,而他们同样需要这样的服务。
我创建了Sendnow来解决这个问题。
你只需上传文件,创建一个带有你logo和按钮的页面,分享一个链接。当有人打开这个链接时,你会收到通知。你可以看到他们阅读了哪些页面以及停留了多长时间。
如果你不需要完整页面,也可以分享单个文件。
这一切的目的就是不再猜测。你可以知道人们何时在查看你的内容。你可以在合适的时机跟进,而不是晚了三天。
我们将在几个月内添加一个功能,根据他们查看的页面和返回的次数告诉你何时联系。但那是以后的事。
现在,直到二月底都是免费的。试试看。如果有什么问题或缺失,请告诉我。如果合理,我会在一周内进行改进。
我是Siraj,我在印度做DevOps。我之所以开发这个,是因为现有的选择收费过高,而提供的服务却太少。
我更想谈的是你所获得的教育价值。如今,大学越来越被认为像工厂一样运作:对讲师质量的关注减少,而对招生人数的增加则更加重视,即使这意味着降低标准。你所获得的知识在多大程度上对你真正有价值?你是否为进入自己的领域做好了充分准备?你觉得你的学位是否仅仅是向雇主证明你不是个完全无能的人?
我认为这大致上是值得的。一些高级课程的质量参差不齐,部分教师的能力也令人怀疑。但我确实学到了足够的知识,可以应用于我选择的领域。
我开发了一款针对Apple Silicon macOS的开源命令行工具。它以不同的方式测量内存速度和延迟。在M4基础上,它的读取速度效率可达到96-97%,而官方宣传的速度为120GB/s。所有内存操作均采用汇编语言实现。
我非常希望能获得不同CPU上的基准测试结果,看看它们的表现。我已经在M1和M4上进行了测试。
命令:`memory_benchmark -non-cacheable -count 5 -output results.JSON`
(运行前请关闭所有应用程序)
这将生成一个JSON文件,其中包含copy_gb_s、read_gb_s和write_gb_s的统计数据。
以下是M4在10次循环下的示例结果:
```json
"copy_gb_s": {
"statistics": {
"average": 106.65421233311835,
"max": 106.70240696071005,
"median": 106.65069297260811,
"min": 106.6336774994254,
"p90": 106.66606919223108,
"p95": 106.68423807647056,
"p99": 106.69877318386216,
"stddev": 0.01930653530818627
},
"values": [
106.70240696071005,
106.66203166240008,
106.64410802226159,
106.65831409449595,
106.64148106986977,
106.6482935780762,
106.63974821679058,
106.65896986001393,
106.6336774994254,
106.65309236714002
]
},
"read_gb_s": {
"statistics": {
"average": 115.83111228356601,
"max": 116.11098114619033,
"median": 115.84480882265643,
"min": 115.56959026587722,
"p90": 115.99667266786554,
"p95": 116.05382690702793,
"p99": 116.09955029835784,
"stddev": 0.1768243167963439
},
"values": [
115.79154681380165,
115.56959026587722,
115.60574235736468,
115.72112860271632,
115.72147129262802,
115.89807083151123,
115.95527337086908,
115.95334642887214,
115.98397172582945,
116.11098114619033
]
},
"write_gb_s": {
"statistics": {
"average": 65.55966046805113,
"max": 65.59040040480241,
"median": 65.55933583741347,
"min": 65.50911885624045,
"p90": 65.5840272860955,
"p95": 65.58721384544896,
"p99": 65.58976309293172,
"stddev": 0.02388146120866979
}
}
```
模式基准测试也显示了更多的内存速度。命令:`memory_benchmark -patterns -non-cacheable -count 5 -output patterns.JSON`
以下是M4在100次循环下的示例结果:
```json
"sequential_forward": {
"bandwidth": {
"read_gb_s": {
"statistics": {
"average": 116.38363691482549,
"max": 116.61212708384109,
"median": 116.41264548721367,
"min": 115.449510036971,
"p90": 116.54143114134801,
"p95": 116.57314206456576,
"p99": 116.60095068065866,
"stddev": 0.17026641589059727
}
}
}
},
"strided_4096": {
"bandwidth": {
"read_gb_s": {
"statistics": {
"average": 26.460392735220456,
"max": 27.7722419653915,
"median": 26.457051473208285,
"min": 25.519925729459107,
"p90": 27.105171215736604,
"p95": 27.190715938337473,
"p99": 27.360449534513144,
"stddev": 0.4730857335572576
}
}
}
},
"random": {
"bandwidth": {
"read_gb_s": {
"statistics": {
"average": 26.71367836895143,
"max": 26.966820487564327,
"median": 26.69907406197067,
"min": 26.49374804466308,
"p90": 26.845236287807374,
"p95": 26.882004355057887,
"p99": 26.95742242818151,
"stddev": 0.09600564296001704
}
}
}
}
```
感谢您的阅读 :)