- 博客(12)
- 收藏
- 关注
原创 windows wsl 替换祖传工具xshell+xftp
windows有wsl开发需求的,通上述配置,适应一段时间操作方式,就可以告别祖传xshell+xftp了。安装了ubuntu,以ubuntu为例,其他linux发行版应该类似,需自行摸索。Port是默认端口22可以不配置,IdentityFile 使用绝对路径。5,powershell 设置复制粘贴。2,远程连接配置,以非root用户为例。~/.ssh/config中的配置。
2024-05-10 12:37:43
509
原创 TensorFlow2.16.1-gpu (windows10 wsl2 ubuntu)
3,windows想要安装最新版的TensorFlow2.16.1 gpu支持 需要wsl2。安装好后在PowerShell和在wsl中使用命令 nvidia-smi 输出信息一样。按照上图的步骤操作就能成功安装tf2.16.1-gpu。2,原生widows上gpu支持到2.10版本。tf2.16.1-gpu安装成功。pip安装换国内源,下面是阿里云的示例。4,进入wsl中安装tf2.16.1。还提到了的其他方法,可自行尝试。安装自己GPU适配的最新版。windows本机安装。,把包名替换成8.9的。
2024-05-08 19:35:33
3569
13
原创 CUDA C++小结
cmake配置,project(cusolver_examples LANGUAGES C CXX。的顺序存储在原生数组中的,所以eigen和cuda的矩阵可以无缝衔接,不需要转置操作。eigen和cuda的矩阵都是默认以。在cpp中链接cu,必须要显示链接。库(cuda runtime)。NVIDIA(英伟达)) 即可使用cuda。
2024-02-29 14:41:49
281
原创 C++20多线程简易日志库
测试100w个简单消息写入,耗时大概4.5s。如果write函数里用std::endl代替"\n"会刷新缓冲区,耗时大概9.1s。1,日志会输出信息,io操作会损耗性能,一般是单独开线程来做。6,目前尚未在实际项目中使用过,请慎用。4,测试代码 logtest.cc。3,完整实现 log.h。
2024-01-26 17:48:36
361
原创 redis c++ clients推荐使用redis-plus-plus
在实际项目中使用过,AsyncRedisCluster访问redis集群。上介绍得很详细,照着文档做就可以使用了。
2024-01-07 22:27:04
651
原创 C++使用MySQL C API操作MySQL,在centos上完整解决方案
可以设置定时器调用ping去检查是否和mysql断开连接,如果断开了先调用disconnect释放内存,再调用connect重连。mysql --login-path=cli 替换mysql -uroot -p 的登录方式。sh source.sh执行脚本创建数据库test和表loginfo。2,mysql创建测试的database和table。算是比较完整的实现,在中小项目中完全可以使用。4,简单使用和测试 dbtest.cpp。3, C++使用mysql,代码实现。根据官网文档引导安装mysql。
2024-01-05 21:57:19
540
原创 c++读写POD数据包实现基础通信协议
pod.hpp代码实现,其中PodReader读数据,Allocator最基础的内存分配器,PodPacket读写数据。3,pod.hpp和podTest.cpp放在同一目录下 编译 g++ -O3 podTest.cpp -o pod。可以在实际项目中使用,非常适合c/c++进程间通信,和非c/c++端的通信统一使用pb通用性会更好。1,server-client或者进程间通信,c/c++可以通过POD进行数据传输。2,测试和简单使用示例 podTest.cpp。
2024-01-04 22:20:27
421
原创 c++高性能排行榜
1,排行榜中的一项可以抽象为如下数据结构2,完整代码实现rankTest.cpp3,linux上,g++开O3优化编译代码4,测试,topn_很小时(1e4),用std::map和std::unordered_map做rankIdx_区别不大。
2023-12-28 20:13:00
608
原创 php基于redis-cli --pipe和mysql事务实现高并发高性能日志服务
定时任务执行脚本sql2Mysql.sh,调用redis2Sql.php把redis中的数据写成sql文件,把sql文件导入mysql。定时任务执行脚本file2Redis.sh读文件,通过redis-cli --pipe命令把文件导入redis。4,稍微修改代码,安装nginx,php,mysql,redis就能轻松实现无连接的上报型日志服务。前端日志请求->cliLog.php->写文件。定时执行daemon.sh。启动服务start.sh。停止服务stop.sh。
2023-12-26 14:42:01
464
原创 boost::geometry multi_polygon union_ 多多边形求并集
可以修复自相交(failure_self_intersections = 21)。但一直求并下去仍然存在无效的中间结果多边形无法修复,导致合并的结果不正确。无效的原因是可能有尖刺(failure_spikes = 12)或者自相交(failure_self_intersections = 21)。2,一个接一个求并,{p0, p1, p2, p3} => p0+p1=p01, p01+p2=p012,p012+p3=p0123。3,中间结果输出可能无效,比如p01无效,做为下一次求并的输入就是无效的。
2023-12-25 12:50:04
1194
原创 Eigen使用mkl加速矩阵运算,mkl cmake配置
在mkl2023.2升级到2024.0不成功,在windows上修改C:\Program Files (x86)\Intel\oneAPI\mkl\2024.0\lib\cmake\mkl\MKLConfig.cmake 其中新加配置是2024.0的新目录。系统变量Path新加 C:\Program Files (x86)\Intel\oneAPI\compiler\2024.0\bin。"../../compiler/latest/bin"#新加配置。4,mkl最新版2024.0升级配置。
2023-12-22 16:40:18
2202
原创 Eigen::MatrixXd 高性能实战
最佳实践是 可逆矩阵 partialPivLu()最高效,不可逆 householderQr()最高效。1,删除Eigen::MatrixXd的某一行或某一列。但效率不如直接调用partialPivLu()使用block函数,效率还可以,不够好。A是n*n的矩阵,同时删除i行i列。如果要访问x,使用auto非常低效。inverse()的说明。2,求解Ax = b;核心代码实现片段v1。
2023-09-04 17:54:09
892
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人