基于Nginx与git在VPS上使用Hexo搭建博客 环境准备搭建博客需要使用的几个框架/软件: Hexo: 博客主体框架,用于生成静态网页,用于一键部署; Git: 部署需要,用于将本地开发机的博客内容推送到远端VPS; Nginx: 反向代理,serve静态网页。 需要两台机器,分别为: 本地开发机: 平常用来写博客,并且会保存hexo主体框架与代码,无需安装nginx,无需暴露公网IP; VPS: 国内外均可,用于实际的博客部署 2025-12-29 个人建站 #Linux
记录一个conda相关的编译与链接错误 "undefined symbol:__cxa_call_terminate" 问题复现之前在自己电脑上折腾conda环境时,安装了pytorch-quantization这个库之后运行时总会报一个错误: from pytorch_quantization import cuda_ext ImportError: /home/blackcat/program/anaconda3/envs/m 2026-01-13 编程随笔 > C++相关 #C++
个人建站时域名/国外VPS选择以及SSL证书配置 域名与VPS供应商选择终于,在决定好博客使用的主题之后,是时候考虑给博客整一个域名和挂载点了。 之前看过很多基于github.io的hexo部署方案,将博客挂载到github上其实算是个不错的选择。不过我还是想自己买一个VPS,不仅能建站也能用来做别的用途(诸如frp/proxy),既然选择自己建站那肯定要考虑选择域名了。 域名选择时无非就是选择国内还是国外的域名供应商,国内的的云服务器 2026-01-04 个人建站 #Blog
Linux环境下在CPP项目内引用torch相关库完成编译 前言与需求Pytorch应该是现在最流行的ai框架之一了,之前在学校日常使用torch都是直接在Python内调用然后开始搭积木与炼丹,对它底层的实现原理不太在意。 后来工作之后稍微看了一些torch的底层原理,在NVIDIA平台上,torch使用C++实现了很多数据结构的设计(例如tensor),在构建模型进行正向计算/反向传播时会用C++调用cuDNN/其他计算库或自己的c 2026-01-03 编程随笔 > AI相关 #Artificial Intelligence #Pytorch
C++中的名称修饰与命名空间 名称修饰/名字修饰(Name Mangling)名称修饰(Name Mangling)是一个很多编程人员容易忽视的cpp特性,现代C++编译器基本上都具有名称修饰的特性,名称修饰的主要用途是将函数、结构体、变量的名称进行加密(Encode),以便将更加具有语义的信息传递给Linker,防止由于声明了相同名称但类型不同/命名空间不同的变量、函数、结构体而引发的冲突。考虑以下三个C 2025-12-29 编程随笔 > C++相关 #C++
使用NVIDIA modelopt代替pt-quantization进行模型量化并使用TRT导出INT8模型 Model-opt与pytorch-quantizaiton的关系pytorch-quantizaitonpytorch-quantizaiton是包含在TensorRT内的一个附属工具。由于torch原生的量化方式一直无法得到工业上的认可,并且trt作为编译方决定了int8模型如何在GPU上运行。 因此使用trt本身提供的量化工具库可以让开发人员更方便的遵循trt的量化规则。pt-quantiz 2025-12-27 编程随笔 > AI相关 #Artificial Intelligence
CUDA Stream和CUDA Event CUDA Context在介绍Stream和event之前,首先应该介绍一下Context。Context与Runtime API或Driver API并无直接关联。Context的描述可以在CUDA手册的Driver API章节找到。Context在CS领域一般译为上下文,在学操作系统的时候有所谓的上下文切换,这里的上下文指的是操作系统为进程或者线程(对于Linux来说,单位是task)维护的一 2025-12-15 编程随笔 > AI相关 #Artificial Intelligence #CUDA
CUDA中的Bank Conflict与Memory Coalesce CUDA中的内存访问模式与内存模型现代的使用GPU的计算系统一般被称作异构系统,一般来说CPU在其中作为处理顺序指令的中央处理器,其目的是尽可能的减少每个指令的平均执行耗时,即latency oriented。而GPU作为并行计算的辅助计算单元,其目的是尽可能的大批量处理与计算数据,即throughput oriented。 CUDA为了提高warp内线程集访问数据的吞吐量,设计了分层式的内存结构 2025-12-12 编程随笔 > AI相关 #Artificial Intelligence #CUDA
使用Pytorch的cpp_extension调用外部C函数 Python中调用C/C++函数的方式常见的在Python内调用C/C++函数的方式有: 直接使用ctypes; 使用Pybind11/Boost.Python等Package包装交互代码后完成调用; 一般来说,如果需要在Python中调用cpp,需要了解并熟悉c/c++的编译、链接以及动态库导出等步骤。在通过Cmake+编译器将cpp项目编译成shar 2025-12-06 编程随笔 > AI相关 #C++ #Artificial Intelligence