在macOS下自动挂载NAS Samba分区和Ubuntu远程分区

我想在macOS下更方便地操作NAS硬盘和Ubuntu台式机的文件。其中NAS是机械硬盘RAID6,写入速度在600MB/s左右,读取速度在1000MB/s左右,提供了Samba服务。Ubuntu是NVMe SSD组建的RAID0,本地读取可以达到10GB/s左右,提供了ssh登录。 ...

July 9, 2023 · 20 min · Binbin Shen

最近升级了GPU台式机

从2017年 组装了一台TITAN Xp四卡台式机 已使用超过4年,最近进行了一些升级: GPU:AORUS GeForce RTX 4090 Xtreme Waterforce 24G CPU:AMD Ryzen Threadripper PRO 5975WX 主板:ASUS Pro WS WRX80E-SAGE SE WIFI II 电源:ROG Thor 1600W Titanium ...

March 5, 2023 · 5 min · Binbin Shen

最简单的Python并发编程

在开始具体介绍各种并发方法之前,这里简单总结一下选择建议: 方法 适用场景 数据传递 优点 缺点 threading I/O密集型任务:如网络上传、数据库查询等,线程在等待I/O时会释放GIL,让其他线程工作 在主线程和工作线程之间传递的是数据的引用(内存地址)。没有数据拷贝或序列化的开销 创建线程开销小,所有线程共享同一个内存空间,资源利用更高效,适合处理网络请求等I/O操作 Python的GIL限制导致CPU密集型任务无法真正并行,多线程切换也会带来额外开销 multiprocessing CPU密集型任务:如大规模数学计算、视频编码等,需要利用多核CPU并行计算以绕开GIL 开销巨大。把一个大的数据块put到队列中时,它必须被序列化(pickle),通过管道(pipe)发送到另一个进程,然后在那个进程中反序列化(unpickle) 可以充分利用多核CPU实现真正的并行计算,每个进程有独立的GIL 每个进程都有独立的内存副本,总体内存消耗更大,启动时间较长 concurrent.futures 简单并行任务:适合批量处理独立且相似的任务,如批量文件处理、网络请求等 线程池模式下与threading相同,进程池模式下与multiprocessing相同,都需要进行数据序列化 提供统一的高级接口同时支持线程池和进程池,使用map等函数式API更直观 无法细粒度控制任务调度,不支持复杂的并发模式,功能相对基础 asyncio I/O密集型任务:特别适合高并发场景,如Web服务器、大量网络请求、API调用等 协程间通过队列、事件或共享变量传递数据,没有序列化开销,数据共享高效 单线程实现并发,避免线程切换开销,支持大量并发连接,性能优异 需要使用async/await特殊语法,第三方库需要专门支持,不适合CPU密集型任务 joblib 科学计算:数据分析、机器学习训练和预测、大规模数值计算等 默认使用多进程,数据需要序列化,但针对numpy数组等科学计算对象有特殊优化 针对科学计算优化,支持结果缓存和进度条显示,与numpy/scipy等库集成好 主要面向数据处理和机器学习场景,通用并发功能有限,不适合复杂的并发控制 1. threading - 多线程 适用于I/O密集型任务的简单示例,并发下载多个文件: ...

January 3, 2023 · 17 min · Binbin Shen

SoundStream的C++实现

https://github.com/google/lyra/blob/main/lyra/soundstream_encoder.cc

December 15, 2022 · 1 min · Binbin Shen

总结requirements.txt和pyproject.toml最佳实践

一、传统基石:requirements.txt与命令式时代 在深入探讨现代Python打包的复杂性之前,必须首先理解其历史基础。requirements.txt和setup.py文件共同构成了多年来Python依赖管理的支柱。这个时代以命令式、基于脚本的方法为特征,虽然在当时解决了关键问题,但也为后来的声明式转变埋下了伏笔。本部分将解构这一传统体系的起源、功能及其固有的局限性。 ...

July 18, 2022 · 170 min · Binbin Shen

组装了一台TITAN Xp四卡台式机

最近我组装了一台GPU训练工作站,总花费64,781元,电脑点亮后运行稳定。 英伟达显卡 我选择了目前最高端的消费级显卡TITAN Xp,在京东抢购了四块,单价9699元,总计38796元。显卡享有三年保修,将于2020年11月到期。 ...

November 20, 2017 · 13 min · Binbin Shen
用TTS生成游戏音库

用TTS生成游戏音库

在游戏开发中,高质量的语音通知对于增强玩家体验至关重要。本文将分享如何利用IBM Watson的文本转语音服务生成基础音频,并通过Adobe Audition进行后期处理,制作出专业级的游戏通知音效。 ...

April 29, 2015 · 8 min · Binbin Shen