🥝
Cross-Disciplinary Perspective
  • 🏵️Cross-Disciplinary Perspective
  • 🏵️Interdisciplinary Perspective-学際的視点
    • 🏵️Multifaceted Viewpoint
      • 🏵️A Guide to Finite Difference, Finite Element, and Finite Volume Methods for PDEs plus AI Reasoning
      • 🏵️Exploring the Landscape of Differential Equations plus AI Reasoning
      • 🏵️Mathematical Structures Underlying Physical Laws plus AI Reasoning
      • 🏵️Synthesizing Solutions: A Holistic View of Mechanical Design plus AI Reasoning
      • 🏵️Seamless FPGA Integration: Building a UARTLite Driver for Linux with PCIe XDMA plus AI Analytics
      • 🏵️Analogue and Digital Signals plus AI Analytics
      • 🏵️Clinical Regression Analytics plus AI Reasoning
      • 🏵️Nonlinear Realities: Mapping the Landscape of Complex Systems plus AI Reasoning
      • 🏵️End-to-End Power Electronics Modeling, Simulation, and Control plus AI Reasoning
      • 🏵️Brains, Bots and Bayesian Belief plus AI Reasoning
      • 🏵️Exploring the Diverse Landscape of UAV Simulation Environments plus AI Expansion
      • 🏵️From Physics to Prediction: A Structured Odyssey Through Data-Driven Deep Learning plus AI Reasoning
      • 🏵️Analyzing Dynamic Microscopy Data
      • 🏵️Benchmarking the Battery Brains plus AI Expansion
      • 🏵️The Nitty-Gritty of Lead-Acid plus AI Expansion
      • 🏵️Decoding Electrochemical Interactions plus AI Expansion
      • 🏵️Decoding Lithium-Ion Battery Models plus AI Expansion
      • 🏵️Extending the Charge for Battery Lifecycles plus AI Expansion
      • 🏵️Data-Powered Cells for Smarter Battery Gigafactories plus AI Expansion
      • 🏵️Overcoming Data Processing Bottlenecks in Energy Storage plus AI Expansion
      • 🏵️A Unified Approach to Binary Quadratic Model Solving plus AI Expansion
      • 🏵️Numerical Diffraction for High-Intensity Lasers plus AI Expansion
      • 🏵️Exploring Quantum Disorder with Multi-GPU Computing plus AI Expansion
      • 🏵️Harnessing AI for Physics plus AI Expansion
      • 🏵️Decoding Deep Learning plus AI Reasoning
      • 🏵️The Computational Toolkit From Quantum Bits to Fractal Coastlines plus AI Reasoning
      • 🏵️Neurocognitive Similarity Analysis-AI Insights
      • 🏵️Applying DTW Across Time Series Domains-AI Insights
      • 🏵️Ground Motion Spatial Analysis-AI Insights
      • 🏵️Drought Metrics & Analytics-AI Insights
      • 🏵️Terrestrial Hydrological Processes-AI Insights
      • 🏵️Correlation Network Informatics-AI Insights
      • 🏵️Immuno-Imaging Analytics in Action-AI Insights
      • 🏵️Computational Strategies for STED Microscopy and Applications-AI Insights
      • 🏵️Bridging SPDEs, Neural Networks, and Advanced Mathematics-AI Insights
      • 🏵️Mathematical Modeling and Analysis of Signaling Pathways and Reaction Networks-AI Insights
      • 🏵️Noise and Hysteresis in Gene Regulatory Networks-AI Insights
      • 🏵️Delving into Battery Hysteresis-AI Insights
      • 🏵️Optimizing Battery Performance Through Modeling and Simulation-AI Insights
      • 🏵️AI's Economic Blind Spot plus AI Expansion
      • 🏵️Ecological Models plus AI Reasoning
      • 🏵️Electrical Circuit Analysis plus AI Reasoning
      • 🏵️The Mathematics of Randomness and Order plus AI Reasoning
      • 🏵️Structured Robotics plus AI Reasoning
      • 🏵️The Omega Function in Action plus AI Reasoning
      • 🏵️Mathematical Finance and Computational Methods plus AI Reasoning
      • 🏵️Quantitative Financial Modeling and Risk Optimization plus AI Reasoning
      • 🏵️AI & Speech Intelligence Ontology plus AI Reasoning
      • 🏵️Matrix Algebra and Geometric Computations plus AI Reasoning
      • 🏵️Computing Electrical Machines plus AI Reasoning
      • 🏵️Discrete & Conformal Geometric Structures plus AI Reasoning
      • 🏵️Thermodynamics and Phase Behavior plus AI Reasoning
      • 🏵️Linear Analysis and Finite Element Applications plus AI Reasoning
      • 🏵️Graph Theory and Algorithmic Structures plus AI Reasoning
      • 🏵️Computational Fluid and Multiphase Dynamics plus AI Reasoning
      • 🏵️BoltzmannSim explores Lattice Boltzmann Methods for Fluid Dynamics plus AI Reasoning
      • 🏵️Integrated Computational Materials Science and Phase-Field Modeling plus AI Reasoning
      • 🏵️Statistical Dynamics and Analytical Modeling plus AI Reasoning
      • 🏵️Light and Advanced Microscopy Techniques plus AI Reasoning
      • 🏵️Unraveling Dynamics plus AI Reasoning
      • 🏵️Exploring Multibody Dynamics and Spatial Vector Theory plus AI Reasoning
      • 🏵️Cognitive Neuroscience and Learning Nexus plus AI Reasoning
      • 🏵️Statistical Inference and Dynamical Systems Analysis plus AI Reasoning
      • 🏵️Multiscale Modeling and Numerical Homogenization plus AI Reasoning
      • 🏵️Sensitivity Analysis and Uncertainty Quantification plus AI Reasoning
      • 🏵️Simulating the Real World with AI plus AI Reasoning
      • 🏵️Statistical and Computational Thermodynamics plus AI Reasoning
      • 🏵️Computational Methods for Molecular Systems plus AI Reasoning
      • 🏵️Beyond the Lens: Mastering Modern Microscopy plus AI Reasoning
      • 🏵️Neurodynamical Systems and Computation plus AI Expansion
      • 🏵️Computational Vision and Mathematical Structures plus AI Expansion
      • 🏵️Statistical measures on neural features plus AI Expansion
      • 🏵️Ground-motion analysis with Bayes plus AI Expansion
      • 🏵️Time Series and Dynamic Time Warping plus AI Expansion
      • 🏵️Ground-motion with statistical methods plus AI Expansion
      • 🏵️Hydrological data with statistical method plus AI Expansion
      • 🏵️Water cycle simulation with statistical methods plus AI Expansion
      • 🏵️The Power of Non-parametric Spearman Correlation in Multiomics Analysis plus AI Expansion
      • 🏵️BioElectroAnalysis plus AI Expansion
      • 🏵️Decoding the Complexity of Lung Inflammation plus AI Expansion
      • 🏵️Microscopy Image Reconstruction Algorithm Models plus AI Expansion
      • 🏵️The Math of Stochasticity plus AI Expansion
      • 🏵️Optical and Physical Concepts in Colloidal and Material Science plus AI Expansion
      • 🏵️Computational Approaches for Single-Cell Data Analysis plus AI Expansion
      • 🏵️Computational Materials Synthesis plus AI Expansion
      • 🏵️Analysis of Multistationarity in Reaction Networks plus AI Expansion
      • 🏵️Stochasticity in Biological Systems plus AI Expansion
      • 🏵️Decoding Battery Behavior plus AI Expansion
      • 🏵️Porous Electrodes in Batteries plus AI Expansion
      • 🏵️Mathematical Building Blocks plus AI Reasoning
      • 🏵️Computational Algebra and Geometric Processing (CAGP) plus AI Reasoning
      • 🏵️Polyhedral Computations Exploring Geometric Algorithms plus AI Reasoning
      • 🏵️Patterns of Thought plus AI Reasoning
      • 🏵️AI-Based Control of Electric Drives plus AI Reasoning
      • 🏵️Electroanalytical Chemistry plus AI Reasoning
      • 🏵️Optical and Physical Concepts in Colloidal and Material Science plus AI Expansion
    • 🌊学際的視点
      • 🌊PDEのための有限差分法、有限要素法、有限体積法の手引きとAI推論
      • 🌊微分方程式の風景を探るとAI推論
      • 🌊物理法則の根底にある数学的構造とAI推論
      • 🌊無人航空機(UAV)シミュレーション環境の多様な状況を探るとAI拡張
      • 🌊動的顕微鏡データの解析とAI拡張
      • 🌊「バッテリーの頭脳」のベンチマーキングとAI拡張
      • 🌊鉛酸バッテリーの核心とAI拡張
      • 🌊電気化学的相互作用の解読とAI拡張
      • 🌊リチウムイオン電池モデルの解読とAI拡張
      • 🌊バッテリーライフサイクルの延長とAI拡張
      • 🌊データ駆動型セルによるスマートなバッテリーギガファクトリーとAI拡張
      • 🌊エネルギー貯蔵におけるデータ処理のボトルネック克服とAI拡張
      • 🌊二乗二値モデルの解法への統一的アプローとAI拡張
      • 🌊高強度レーザーのための数値回折とAI拡張
      • 🌊複数GPUコンピューティングによる量子無秩序系の探求とAI拡張
      • 🌊AI を物理学に活用するとAI拡張
      • 🌊AIの経済的盲点とAI拡張
      • 🌊神経力動システムと計算とAI拡張
      • 🌊数理構造に基づく計算視覚とAI拡張
      • 🌊単一細胞データ解析のための計算アプローチとAI拡張
      • 🌊計算材料合成とAI拡張
      • 🌊生物システムにおける確率性とAI拡張
      • 🌊電池挙動の解明とAI拡張
      • 🌊機械設計の全体像:統合的ソリューションの構築とAI推論
      • 🌊臨床回帰分析とAI推論
      • 🌊非線形な現実:複雑なシステムの景観を地図化するとAI推論
      • 🌊エンドツーエンドのパワーエレクトロニクスモデリング、シミュレーション、制御とAI推論
      • 🌊脳、ボット、そしてベイズの信念とAI推論
      • 🌊物理から予測へ:データ駆動型深層学習による構造化された探求とAI推論
      • 🌊深層学習を解き明かすとAI推論
      • 🌊量子ビットからフラクタル海岸線までの計算ツールキットとAI推論
      • 🌊生態学的モデルとAI推論
      • 🌊電気回路解析とAI推論
      • 🌊偶然性と秩序の数学とAI推論
      • 🌊構造化ロボティクスとAI推論
      • 🌊作用中のオメガ関数とAI推論
      • 🌊数理ファイナンスと計算手法とAI推論
      • 🌊AIと音声知能オントロジーとAI推論
      • 🌊行列代数と幾何計算とAI推論
      • 🌊電気機械の計算とAI推論
      • 🌊離散・共形幾何構造とAI推論
      • 🌊熱力学と相挙動とAI推論
      • 🌊線形解析と有限要素法応用とAI推論
      • 🌊グラフ理論とアルゴリズム構造とAI推論
      • 🌊計算流体および多相流体力学とAI推論
      • 🌊BoltzmannSimによる流体動力学のための格子ボルツマン法の探求とAI推論
      • 🌊統合計算材料科学と相場モデル、そしてAI推論
      • 🌊統計力学と解析モデリングとAI推論
      • 🌊光と高度な顕微鏡技術とAI推論
      • 🌊ダイナミクスの解明とAI推論
      • 🌊多体動力学と空間ベクトル理論の探求とAI推論
      • 🌊認知神経科学と学習の結びつきとAI推論
      • 🌊統計的推論と力学系解析とAI推論
      • 🌊マルチスケールモデリングと数値的均質化とAI推論
      • 🌊感度分析と不確かさ定量化とAI推論
      • 🌊AIによる現実世界のシミュレーションとAI推論
      • 🌊統計的および計算熱力学とAI推論
      • 🌊分子系のための計算手法とAI推論
      • 🌊レンズの向こう側:現代顕微鏡技術の習得とAI推論
      • 🌊数学的構成要素とAI推論
      • 🌊計算代数と幾何学的処理とAI推論
      • 🌊多面体計算:幾何学アルゴリズムとAI推論の探求
      • 🌊思考のパターンとAI推論
      • 🌊電気ドライブのAIベース制御とAI推論
      • 🌊電気分析化学はとAI推論
      • 🌊コロイドおよび材料科学における光学的および物理的概念とAI拡張
      • 🌊確率論の数学とAI拡張
      • 🌊顕微鏡画像再構成アルゴリズムモデルとAI拡張
      • 🌊肺の炎症の複雑性の解読とAI拡張
      • 🌊生体電気分析とAI拡張
      • 🌊マルチオミクス解析におけるノンパラメトリックなスピアマン相関の力とAI拡張
      • 🌊統計的手法を用いた水循環シミュレーションとAI拡張
      • 🌊Bayesを用いた強震動解析とAI拡張
      • 🌊統計的手法を用いた水文データとAI拡張
      • 🌊統計的手法を用いた地震動とAI拡張
      • 🌊時系列とダイナミックタイムワーピングとAI拡張
      • 🌊電池における多孔質電極とAI拡張
      • 🌊反応ネットワークにおける多定常性の解析とAI拡張
      • 🌊神経特徴の統計的評価とAI拡張
      • 🌊定量的金融モデリングとリスク最適化とAI推論
    • 🪡亚图跨际
      • 🪡偏微分方程数值方法指南及AI推理
      • 🪡探索微分方程的领域及AI推理
      • 🪡物理定律的数学结构基础及AI推理
      • 🪡综合解决方案:机械设计的整体观及AI推理
      • 🪡临床回归分析及AI推理
      • 🪡非线性现实:绘制复杂系统的图景及AI推理
      • 🪡端到端电力电子建模、仿真与控制及AI推理
      • 🪡大脑、机器人与贝叶斯信念及AI推理
      • 🪡探索无人机模拟环境的多元景象及AI拓展
      • 🪡从物理到预测:数据驱动的深度学习的结构化探索及AI推理
      • 🪡动态显微镜数据分析及AI拓展
      • 🪡电池大脑的基准测试及AI拓展
      • 🪡铅酸电池的细枝末节及AI拓展
      • 🪡生态模型及AI推理
      • 🪡解码电化学相互作用及AI拓展
      • 🪡延长电池寿命的充电及AI拓展
      • 🪡数据驱动的智能电池超级工厂及AI拓展
      • 🪡克服储能领域的数据处理瓶颈及AI拓展
      • 🪡胶体和材料科学中的光学与物理概念及AI拓展
      • 🪡电池中的多孔电极及AI拓展
      • 🪡解读电池行为及AI拓展
      • 🪡生物系统中的随机性及AI拓展
      • 🪡反应网络中多稳态的分析及AI拓展
      • 🪡计算材料合成及AI拓展
      • 🪡计算方法在单细胞数据分析中的应用及AI拓展
      • 🪡随机性的数学及AI拓展
      • 🪡显微镜图像重建算法模型及AI拓展
      • 🪡解码肺部炎症的复杂性及AI拓展
      • 🪡生物电化学分析及AI拓展
      • 🪡非参数 Spearman 相关在多组学分析中的力量及AI拓展
      • 🪡基于统计方法的水循环模拟及AI拓展
      • 🪡基于统计方法的水文数据分析及AI拓展
      • 🪡基于统计方法的地震动分析及AI拓展
      • 🪡时间序列与动态时间规整及AI拓展
      • 🪡基于贝叶斯方法的地震动分析及AI拓展
      • 🪡神经特征的统计度量及AI拓展
      • 🪡计算视觉与数学结构及AI拓展
      • 🪡神经动力学系统与计算及AI拓展
      • 🪡人工智能的经济盲点及AI拓展
      • 🪡二元二次模型求解的统一方法及AI拓展
      • 🪡高强度激光的数值衍射及AI拓展
      • 🪡利用多GPU计算探索量子无序及AI拓展
      • 🪡利用人工智能驾驭物理学及AI拓展
      • 🪡解码深度学习及AI推理
      • 🪡从量子比特到分形海岸线:计算工具箱及AI推理
      • 🪡电路分析及AI推理
      • 🪡数学随机性与序及AI推理
      • 🪡结构化机器人学及AI推理
      • 🪡数学基石及AI推理
      • 🪡欧米茄函数的应用及AI推理
      • 🪡数学金融学与计算方法及AI推理
      • 🪡基于人工智能的电机驱动控制及AI推理
      • 🪡思维模式及AI推理
      • 🪡多面体计算探索几何算法及AI推理
      • 🪡计算代数与几何处理及AI推理
      • 🪡量化金融建模与风险优化及AI推理
      • 🪡人工智能与语音智能本体论及AI推理
      • 🪡矩阵代数与几何计算及AI推理
      • 🪡电机计算及AI推理
      • 🪡离散与共形几何结构及AI推理
      • 🪡热力学与相行为及AI推理
      • 🪡线性分析与有限元应用及AI推理
      • 🪡图论与算法结构及AI推理
      • 🪡计算流体与多相动力学及AI推理
      • 🪡利用格子玻尔兹曼方法进行流体动力学模拟及AI推理
      • 🪡计算材料科学与相场建模及AI推理
      • 🪡统计动力学与分析建模及AI推理
      • 🪡光学及前沿显微技术及AI推理
      • 🪡解析动态及AI推理
      • 🪡探索多体动力学与空间向量理论及AI推理
      • 🪡认知神经科学与学习枢纽及AI推理
      • 🪡统计推断与动力系统分析及AI推理
      • 🪡多尺度建模与数值均匀化及AI推理
      • 🪡灵敏度分析与不确定性量化及AI推理
      • 🪡将人工智能应用于现实世界模拟及AI推理
      • 🪡统计和计算热力学及AI推理
      • 🪡计算分子体系的方法及AI推理
      • 🪡超越镜头:掌握现代显微镜技术及AI推理
      • 🪡电分析化学及AI推理
      • 🪡神经认知相似性分析及AI洞察
      • 🪡时间序列领域应用DTW及AI洞察
      • 🪡地震动空间分析及AI洞察
      • 🪡干旱指标与分析及AI洞察
      • 🪡陆地水文过程及AI洞察
      • 🪡相关网络信息学及AI洞察
      • 🪡免疫影像分析的实践及AI洞察
      • 🪡STED显微镜的计算策略及其应用及AI洞察
      • 🪡连接随机偏微分方程、神经网络与高等数学及AI洞察
      • 🪡信号通路和反应网络的数学建模与分析及AI洞察
      • 🪡基因调控网络中的噪声与滞后及AI洞察
      • 🪡深入探讨电池滞后及AI洞察
      • 🪡通过建模和仿真优化电池性能及AI洞察
      • 🪡归档
        • 🍓创客物语 | Craft
          • 🍓Python(C_Cpp)分析模拟Arduino和Raspberry Pi(单板机)CAN总线和车载单元测试
          • 🍓Python远程SSH和HTTP视频流级联分类Raspberry Pi 机器人
          • 🍓Rasberry Pi Pico(RP2040板) C_Cpp及Python微型机器学习
          • 🍓MATLAB_ESP32有限脉冲响应FIR无限脉冲响应IIR滤波器
          • 🍓Node-RED(Raspberry Pi)传感器MQTT和云
          • 🍓Arduino Cloud 构建气体检测系统
          • 🍓ESP32 MicroPython温湿度及二氧化碳
          • 🍓Arduino和MATLAB串口通讯及直流-步进电机控制
          • 🍓Arduino 和Edge Impulse运动机器学习OLED显示运动名称
          • 🍓ESP8266 简单邮件传输协议(SMTP)传输邮件
          • 🍓Arduino多节点LoRa双向通讯和主节点OLED显示
          • 🍓STM32温湿度LoRa ESP8266 WiFi 上传手机端数据监控
          • 🍓Arduino和Jetson Nano(或Raspberry Pi) 机器人操作系统 ROS 远程(电脑端_手机端)移动微型车和SLAM(同时定位和映射)
          • 🍓Python_OpenCV_TensorFlow微型仿真深度学习 Raspberry Pi 自动驾驶车
          • 🍓Arduino惯性测量单元比例积分微分(PID)自平衡移动轮
          • 🍓MSP432神经网络推理语音识别(行动和停止)
          • 🍓ESP32手机端面部识别
          • 🍓Arduino_LoRa(RESTful API_MQTT物联网服务器_GPS追踪器)
          • 🍓Arduino三相交流电压测量LCD显示
          • 🍓MSP432 和 Arduino 惯性测量单元微型机器学习地形识别
          • 🍓MSP432 和 Arduino 机器学习语音命令识别驱动小车
          • 🍓Arduino 蓝牙H型桥直流驱动小车
          • 🍓Python和Java逻辑分析仪FPGA(VHDL和Verilog)
          • 🍓Arduino和Raspberry Pi平面位置指示器
          • 🍓Arduino和ESP8266水电子电导率计算总溶解固体
          • 🍓ESP32或Arduino心电图蓝牙和无线网络监控
          • 🍓Raspberry Pi(Python) MQTT上传温湿度至云端
          • 🍓Raspberry Pi 动态热成像(热像仪)
          • 🍓ESP32上的Node.JS聊天服务器
          • 🍓Raspberry Pi和Python Web 框架Bottle控制直流电机和温湿度
          • 🍓ESP32板载LoRa微型遥测定位系统
          • 🍓Arduino耳间时差声音定位和导向
          • 🍓LabVIEW实时监测和绘制单晶光伏板电压电流和能耗趋势
          • 🍓ESP32(Arduino)和Raspberry Pi(Node-RED)LoRa和ESP-NOW大范围数据通讯中继系统
          • 🍓Arduino流体力学燃油效率计
          • 🍓Python计算Arduino声音方向范围和绘制声音位置二维概率分布热图
          • 🍓STM32运行Rust测量温湿度海拔和气压
          • 🍓Python和MATLAB绘制ESP8266 Raspberry Pi代理MQTT消息数据
          • 🍓Arduino蓝牙小车
          • 🍓MicroPython网络服务器控制ESP32/ESP8266
          • 🍓Raspberry Pi和Arduino构建高级功能的基本机器人
          • 🍓ESP8266测试Wi-Fi通讯安全
          • 🍓Arduino波形发生器
          • 🍓MATLAB蓝牙通讯Arduino
          • 🍓MATLAB绘制实时温度曲线
          • 🍓ESP8266连接STM32创建网络服务器
          • 🍓Arduino汽车速度检测器
          • 🍓使用Verilog HDL在FPGA上进行图像处理
          • 🍓Arduino 迷你温室控制
          • 🍓ESP8266访问MySQL
          • 🍓Blynk控制ESP8266温湿度
          • 🍓Raspberry Pi远程施水监控系统
          • 🍓Raspberry Pi二氧化碳百分比测量
          • 🍓Arduino游戏项目– Arduino的Flappy Bird复制品
          • 🍓Arduino颜色分类器
          • 🍓Arduino旋转编码器
          • 🍓Arduino时钟LCD显示
          • 🍓Arduino数据记录至Excel
          • 🍓Arduino触摸屏MP3音乐播放器和闹钟项目
          • 🍓Arduino安全和警报
          • 🍓Arduino无线通信– NRF24L01教程
          • 🍓Android蓝牙Arduino LED矩阵
          • 🍓Arduino版RFID门锁
          • 🍓Arduino远程无线通信
          • 🍓Arduino直流电机
          • 🍓Arduino和Android蓝牙无线远程控制汽车
          • 🍓Arduino自动售货机
          • 🍓Arduino控制LED灯带
          • 🍓Arduino测距仪和水平仪
          • 🍓Arduino平移和倾斜电动相机滑块
          • 🍓Arduino多个NRF24L01模块无线网络
        • 🥑编程碎语 | Code
          • 🥑Python多语言欧拉法和预测校正器实现
          • 🥑Python混淆矩阵用例
          • 🥑Python蛛网图可视化函数迭代
          • 🥑C++数理逻辑定义和实现成像捕捉及交互式变形
          • 🥑Python大型数据集(GPU)可视化和Pillow解释性视觉推理及材料粒子凝聚
          • 🥑Python可视化概率统计和聚类学习分析生物指纹
          • 🥑Cpp多核开发和并行计算CUDA_OpenMP_OpenCL
          • 🥑CPU和GPU(C代码)并行计算及二维网格热传输
          • 🥑Python网络协议和漏洞甄别网络安全之二
          • 🥑Python网络设备连接和配置工具网络安全之一
          • 🥑Python个人生产力终端看板应用程序
          • 🥑Python嗅探和解析网络数据包
          • 🥑React Node.js 和 Prisma 构建全栈框架
          • 🥑wxPython异步等待示例
          • 🥑Raspberry Pi控制wxPython仪表盘
          • 🥑wxPython中面板切换
          • 🥑Python二氧化碳信息图表
          • 🥑Streamlit分列嵌套 Python 数据可视化
          • 🥑Python_WebSocket服务器和Python_JavaScript客户端
          • 🥑Python地理空间 Web 应用程序
          • 🥑Python和C++通用语音识别模型
          • 🥑Python搜索基因中特定密码子
          • 🥑Kotlin面向对象编程和Android开发
          • 🥑Python数据仪表板Streamlit可视化地震数据
          • 🥑Python事件驱动和桥接C/C++专业编程
          • 🥑Numba映射Python代码至CUDA内核
          • 🥑Python动画可视化排序算法(冒泡-插入-选择-堆-shell-合并-快速)
          • 🥑C++(CMake)视觉OpenCV-Raspberry Pi图像处理-3D图像重建-面部界标检测-卷积神经网络车牌自动识别-深度神经网络面部检测和识别
          • 🥑C++(CMake)视觉OpenCV滤镜-自动光学检测-对象分类跟踪-背景建模和形态学操作-文本识别分割算法
          • 🥑Python客户端发布订阅MQTT云代理消息
          • 🥑Python和Kafka交互式geoJSON地理特征示例
          • 🥑Python创建数学动画
          • 🥑Dash 嵌入 Flask App
          • 🥑Jupyter Lab中的GPU仪表板
          • 🥑使用Python Tkinter的剪刀石头布游戏
          • 🥑在Raspberry Pi上使用PySimpleGUI创建图表
          • 🥑PySimpleGUI –快速简便的界面
          • 🥑使用Flutter控制蓝牙通讯
          • 🥑Python版Socket(套接字)应用-客户端和服务器
          • 🥑Python使用Reportlab处理PDF数据
          • 🥑Flutter App
          • 🥑Python初学者练手项目
          • 🥑Python数据交互式可视化
          • 🥑透视Matplotlib
          • 🥑Python_OpenCV(滤镜_深度传感器_特征匹配_视觉跟踪识别_分类)及其C++ArUco标记姿态计算
          • 🥑Python卡通化照片
          • 🥑Python交互式Web应用程序
          • 🥑SimpleCV形状分类检测
          • 🥑Python生成音乐波
          • 🥑Plotly和Flask网页可视化
          • 🥑使用Beautiful Soup和Requests爬网
          • 🥑Flutter检测图像和实时相机流中对象
          • 🥑Streamlit构建机器学习模型界面
          • 🥑SpaCy 和 Flask API 构建 Python 命名实体自动提取器
        • 🫐机器学习 | Machine Learning
          • 🫐Python和C++及MATLAB低温磁态机器学习模型
          • 🫐Python光电光对光神经网络非相干光图像低维映射模拟
          • 🫐Python神经模型评估微分方程图算法
          • 🫐Python俄罗斯方块可操纵卷积分类 | 稀疏辨识算法 | 微分方程神经求解器
          • 🫐Python发票合同 | 解缠注意力语言模型
          • 🫐Python记忆组合透明度语言模型
          • 🫐PyCaret(Python自动化机器学习)自定义交互式解释性模型
          • 🫐Python遗传编程运动测试和计划调度安排之一
          • 🫐AutoKeras(Python自动化机器学习)多模态数据和多任务
          • 🫐Python概率建模算法和图示
          • 🫐Python深度学习预测倍周期分岔(鸡心脏细胞聚集体自发跳动)
          • 🫐TensorFlow二元-多类-多标签分类示例
          • 🫐Python使用OpenAI 和大型语言模型对话PDF和图像文本
          • 🫐TensorFlow(Python | Keras)人工神经网络(ANN)回归模型-找出材料获得超导特性的温度和分类模型-区分结合剂/非结合剂分子属性
          • 🫐Python和Streamlit无线网络人工智能安全评估框架
          • 🫐Python声学特征神经网络构建区域响度图
          • 🫐Python(简化分子线性输入)卷积网络帕拉塞尔苏斯公理预测化学物毒性
          • 🫐Python语义转导双向编码表征和spaCy(命名实体识别和文本分类)提取旅游信息
          • 🫐Python显微外周血细胞图像增强颜色变换4种多层感知分类器
          • 🫐Python探索性数据分析(EDA)语音数据建模
          • 🫐Python脑电图(EEG)青光眼即时诊断神经网络模型
          • 🫐Raspberry Pi和Python-OpenCV-TensorFlow卷积神经网络热成像人物检测
          • 🫐Raspberry Pi和Python OpenCV人工神经网络和卷积神经网络演示及其机器学习微型框架
          • 🫐Python视网膜光学相干断层扫描病理学分类
          • 🫐Python时间序列梯度提升模型预测优化共享单车调度
          • 🫐Python时间序列统计模型自回归预测网络流量
          • 🫐Python时间序列scikit-learn回归预测电力需求
          • 🫐PyTorch(Python)训练MNIST模型移动端IOS上使用Swift实时数字识别
          • 🫐Python预测船只阻力4种方法线性回归决策树神经网络和K最近邻
          • 🫐使用 TensorFlow 和 Flask 部署 Keras 图像分类卷积神经网络模型
          • 🫐PlatformIO运行ESP32 TensorFlow Lite
          • 🫐Python和NumPy简易深度学习训练螺旋数据
          • 🫐PyTorch(Python)肺癌深度学习模型训练和Flask应用部署
        • 🌶️技术阡陌 | Crisscross
          • 🌶️LaTex创建商业和科学文本
        • 🥥交融贯通 | Intersection
          • 🥥Python自准直仪双筒望远镜光学ABCD矩阵行为算法
          • 🥥Python成像质谱流式细胞术病理生理学
          • 🥥Python | C++ | MATLAB | Julia | R 市场流动性数学预期评估量
          • 🥥Python流动性做市风险获利 | 信息不对称买卖数学模型
          • 🥥Python牛市熊市横盘机制 | 缺口分析 | 头寸调整算法
          • 🥥Python和C++组学数据DNA和RNA
          • 🥥Python嵌入式片上系统逻辑电路分析调制物理信号
          • 🥥C++计算资本市场收益及成本分配数学方程
          • 🥥C++和Python计算金融数学方程算法模型
          • 🥥Python物理量和化学量数值计算
          • 🥥MATLAB和Python数值和符号计算可视化物理学气体动能和粒子速度
          • 🥥Python和MATLAB数字信号波形和模型模拟
          • 🥥Python蒸发散物理问题(微积分-线性代数-拉普拉斯和傅立叶变换)
          • 🥥Python地理数据机器学习数学
          • 🥥Python_Tkinter和OpenCV模拟行星凌日传输光度测定
          • 🥥Python农艺学土壤统计数值
          • 🥥Python和MatLab模拟粒子动力系统
          • 🥥Python经典热力学数值分析
          • 🥥Python和Julia线性代数(矢量矩阵最小二乘)
          • 🥥Python对称和非对称加密算法及网传输层安全(TLS)
          • 🥥Python微积分概率统计和图形论及几何学实现
          • 🥥Python水力学和水文学应用
          • 🥥Python主成分分析(简化分子线性输入)化学分子结构
          • 🥥Python密码线性方程组和频率分析
          • 🥥Python蒙特卡洛算法光学数据模型非弹性散射模拟
          • 🥥Python电网静态和准静态分析及自动化优化
          • 🥥Python和Matplotlib电磁一维二维三维模拟
          • 🥥R大数定律(Python切比雪夫不等式验证大数定律)模拟圆周率
          • 🥥Python数值和偏微分方程解
          • 🥥MATLAB和Python数值计算
          • 🥥Python流体动力学共形映射库埃特式流
          • 🥥MATLAB神经影像学数据的多模态多元模式分析方法
          • 🥥Python卡尔曼数字滤波(线性二次估计)一维和多维传感器测量
          • 🥥Python仿真二级供应链测试安全库存模型
          • 🥥Python模拟大型蛋白质结构与细胞膜的相互作用
          • 🥥Python和OpenCV图片傅里叶变换光线照射_边框处理和Kmeans颜色量化
          • 🥥Python实现圆形鼓面声波动画示例
          • 🥥频移键控(FSK)用Python解释
          • 🥥声波的时域和频域Python实现示例
          • 🥥Python实现谐波比,李沙育曲线和正交阻尼摆绘制
          • 🥥Python模拟概率统计机器学习
          • 🥥MATLAB与Python数值计算
          • 🥥Python对比MATLAB波动数据分析优势
          • 🥥Python交互MATLAB预测数据结果
          • 🥥Python数字信号处理
          • 🥥Python统计推断
          • 🥥Python可视化和动画模拟物理
          • 🥥Python数学工具金融分析
          • 🥥Python数据挖掘和解析算法
          • 🥥Python数值算法片段
          • 🥥Python物理数值解析
          • 🥥Python解偏微分方程
          • 🥥LabVIEW和MATLAB算法优化
          • 🥥Python和R商业数据挖掘分析技巧
          • 🥥Python 和 R 数据分析和建模技巧
          • 🥥Python 和 R 营销数据分析
          • 🥥Python物理力学数值分析
          • 🥥实验物理中使用 Python 数据分析
          • 🥥Python流体动力学层流建模
          • 🥥流体力学示例 Python 分析
          • 🥥Python有限体积流体开尔文-亥姆霍兹不稳定性
          • 🥥Python时间序列预测大气二氧化碳浓度
          • 🥥Python蒙特卡洛相关变量SciPy模拟
          • 🥥Python二维电磁逆散射算法
          • 🥥Visual Studio Code 编辑 Java 和 OpenCV利用YOLO DNN 实现 Raspberry Pi 图像检测和分析
          • 🥥Python 遥感地理空间数据分析
          • 🥥MATLAB和Python电磁学数值分析
          • 🥥Python绘制LTspice仿真趋势图
          • 🥥Python音乐信号处理和理论可视化
          • 🥥Python音乐合成器
        • 🥬嵌入式 | Embedded
          • 🥬Python和MATLAB微机电健康推导算法和系统模拟优化设计
          • 🥬C++和Python蚂蚁搬食和蚊虫趋光性和浮标机群行为算法神经网络
          • 🥬Arduino生物波反馈和环境检测外套
          • 🥬Python嵌入式动态用户调制解调响应式射频信号
          • 🥬RISC-V单板计算机模拟和FPGA板多核IP实现
          • 🥬ROS2(Cpp或Python)机器学习路径选择三维模拟平衡车及YOLOv8视觉消息
          • 🥬Cpp或Python(ROS2)有限状态机-行为树数学模型及虚拟力场本地导航算法避障
          • 🥬Cpp(Python)和MATLAB差动驱动ROS Raspberry Pi全功能机器人原型
          • 🥬单板计算机(SBC)-片上系统(SOC)嵌入式Cpp和FPGA(VHDL)
          • 🥬Arduino和MPLAB X 开发STM32F103和PIC16F15376
          • 🥬FRDM‐K64F开发板 ARM Mbed 在线编译器嵌入式和物联网开发
          • 🥬C Cpp和Python实现STM32F4实时操作系统(FreeRTOS)吸尘器
          • 🥬Qt固件映像 Raspberry Pi 嵌入式C++(Qt)编程
          • 🥬创建ESP32开源WiFi MAC(介质访问控制)层
          • 🥬Verilog视频信号图形显示 FPGA(iCE40)
          • 🥬C11编写简易16位虚拟机
          • 🥬uPyCraft IDE安装和刷新ESP32和ESP8266固件
          • 🥬STM32F4(Keil uVision)嵌入式库功能
          • 🥬Arduino LoRa服务器点对点Raspberry Pi LoRa客户端
          • 🥬STM32接口ESP8266 WiFi 安卓MQTT客户端查询温度
          • 🥬ESP8266 模块和霍尔效应传感器MQTT监测水流量
          • 🥬MSP430嵌入式接口编程(惯性测量单元温湿度双音多频磁力计LCD显示等)
          • 🥬MSP432 板载红外收发器模块接口IR LED控制
          • 🥬Raspberry Pi Pico MicroPython 连接 ESP8266 WiFi 模块
          • 🥬Proteus仿真Arduino和传感器
          • 🥬MSP432(ARM Cortex M4)和Code Composer Stduio(嵌入式 C)
          • 🥬MSP432(ARM Cortex M4)和Code Composer Stduio(嵌入式 C)
          • 🥬MicroPython 编程 Raspberry Pi Pico
          • 🥬Raspberry Pi(Python)串行外设接口SPI驱动FPGA(VHDL)控制LED
          • 🥬FPGA(VHDL)串行外设接口SPI 通讯加速度计
          • 🥬FPGA(VHDL) 通用异步收发器UART和I2C通讯温度数据
          • 🥬FPGA(VHDL)模数转换IP和锁相环IP激光信号判定人数
          • 🥬TM4C123中断通讯和传感器接口
          • 🥬Raspberry Pi Pico和MicroPython Arduino项目
          • 🥬MSP432使用CCS模数转换(ADC)通用输入输出(GPIO)脉宽调制(PWM)通用异步接收器和发送器(UART)及其RTOS和机器人超声波距离检测
          • 🥬STM32嵌入式Rust通讯示例
          • 🥬STM32借助Mbed OS多线程调节电脑音量
          • 🥬Tinkercad和LTspice仿真Arduino音频
          • 🥬Arduino和HC-05蓝牙模块
          • 🥬Python探索Raspberry Pi机器人平台
          • 🥬Arduino nRF52840高级蓝牙5
          • 🥬TensorFlow Lite深度学习Arduino微控制器
          • 🥬Blynk监视ESP8266 MQTT通讯Raspberry Pi温湿度
          • 🥬Raspberry Pi代理MQTT协议一对ESP8266节点
          • 🥬App Inventor自定义构建Android App
          • 🥬HC-05蓝牙模块主从机AT指令
          • 🥬Arduino多传感器I2C通讯
          • 🥬Arduino和Raspberry Pi之间的I2C通讯
          • 🥬ESP32的ESP-NOW板之间最简单的无线通信(兼容ESP8266)
          • 🥬ESP32 LoRa传感器远程通信监控
          • 🥬使用Arduino IDE的ESP32电容式触摸传感器引脚
          • 🥬ESP32 ADC –使用Arduino IDE读取模拟值
          • 🥬使用Arduino IDE的ESP32蓝牙经典入门
          • 🥬ESP32内置霍尔效应传感器
          • 🥬ESP32闪存-存储永久数据(写和读)
          • 🥬使用Arduino IDE的ESP32 PWM
          • 🥬ESP32和TensorFlow Lite面向微控制器的第一步
          • 🥬ESP32在线调试
          • 🥬在Raspberry Pi上运行OpenBuilds控件
          • 🥬nRF52840 BLE(低功耗蓝牙)客户端/服务器远程控制
          • 🥬ESP32 WiFi协处理器设置nRF52840网络访问
          • 🥬Arduino遥控发射器
          • 🥬Arduino无刷电机和电子速度控制
          • 🥬在运行MicroPython的ESP上使用Jupyter Notebook
          • 🥬使用Flask在 Raspberry Pi 上设置REST Web API
          • 🥬NodeMCU(ESP8266)使用HTTP Get和Post
          • 🥬30个 BeagleBone 嵌入式项目
          • 🥬Arduino 和 Raspberry Pi 传感器实践
          • 🥬Arduino 运行 Rust
          • 🥬Arduino与C#通讯
        • 🧄数据科学 | Data Science
          • 🧄Python和R概率统计算法建模评估气象和运动
          • 🧄Python命令行终端分析后勤物资分配-音乐-机场-酒店评论数据
          • 🧄Python条形图热图直方图可视化精神健康状态(医学数据集)
          • 🧄Pandas数据变形和模型分析
          • 🧄Python时间序列模型使用河流-地下水-泵水数据计算地下水位下降
          • 🧄Python数据管道及实时边缘数据(物联网)Kafka-MiNiFi和Spark
          • 🧄Python(3D数据分析)体素化网格和点云及邻域分析-K维树和八叉树
          • 🧄Python(异常值病理检测)胎儿心率和子宫收缩特征距离正常值偏移阈值
          • 🧄Python探索性数据分析消费意愿
          • 🧄Python探索性数据分析公司破产征兆
          • 🧄Python线性回归和逻辑回归分析金融营销策略
          • 🧄Python条件概率-贝叶斯定理和柯尔莫哥洛夫-斯米尔诺夫检验分析缺勤数据
          • 🧄Python概率理论和时间序列分析共享交通工具数据
          • 🧄Python分析绘图蒙特卡洛和马尔可夫链蒙特卡洛样本
          • 🧄Python智能驱动数学模型和泰勒级数-贝塞尔曲线模拟微观交通
          • 🧄Python统计模型探索性数据分析(EDA)系统(单变量-双变量-相关性-缺失值)
          • 🧄Python探索性数据分析(EDA)统计数据和建模
          • 🧄R降维预测癌症良性或恶性
          • 🧄Python大数定律和中心极限定律预测投币期望线性值
          • 🧄简单线性回归R和Python预测身高体重国内生产总值二氧化碳排放量
          • 🧄R和Python主成分分析(PCA)线性判别分析(LDA)及其K-最近邻分类器和病理预测
          • 🧄Python自回归移动平均和自回归综合移动平均及快速预测每月飞机乘客
          • 🧄监控系统和网络入侵Python流式数据异常检测
          • 🧄Python探索性数据分析(EDA)暴力密码猜测攻击网站登录异常检测策略
          • 🧄Python蒙特卡洛模拟工作或任务轻重缓急策略
          • 🧄Python交互式D3.js可视化应用样板
          • 🧄Python灰度共生矩阵OpenCV和scikit-image图像特征分析和K-最近邻算法
          • 🧄Python共生矩阵对比奇异值分解 (SVD)和词嵌入
          • 🧄共生矩阵Flask和D3.js可视化销售数据和Python分析论文重叠主题
          • 🧄D3交互式可视化Python自然语言工具包命名实体识别
          • 🧄R仪表板-图像处理-数据缩减-映射
          • 🧄R时间序列自回归模型和探索性数据分析
          • 🧄R和Python概率分布统计和Python验证独立性和平稳性时间序列
          • 🧄R统计回归分布算法示例见解
          • 🧄R数据图形分析及精神健康数据和健身数据可视化项目
          • 🧄R生物信息学统计分析
          • 🧄R分析可视化实用数据(航班_教育_餐厅_租户_变迁_寿命_安全)
          • 🧄Python时间序列预测股票价格和空气质量(氮氧化合物浓度)
          • 🧄Anaconda_Python视觉项目TensorFlow_scikit-learn和OpenCV及其Raspberry Pi雾计算
          • 🧄Python探索性数据分析畅销书
          • 🧄D3交互式可视化Python自然语言工具包命名实体识别
          • 🧄Jupyter Notebook分析Wireshark捕捉ESP8266信标数据
        • 🍠算法模型 | Algorithm
          • 🍠Python热化学固态化学模型模拟
          • 🍠Python和C++胶体粒子三维残差算法模型和细化亚像素算法
          • 🍠Python和R及Julia妊娠相关疾病生物剖析算法
          • 🍠Python体素化脑信息图混淆矩阵相似性指标评估
          • 🍠Python神经求解器去耦合算法和瓦瑟斯坦距离量化评估
          • 🍠Python燃烧废气排放推断算法模型
          • 🍠Python热频随机森林分类器算法模型模拟
          • 🍠Python(TensorFlow和PyTorch)两种显微镜成像重建算法模型
          • 🍠Python(PyTorch)多语言图像感知质量指标算法
          • 🍠Python(PyTorch)物理变化可微分神经算法
          • 🍠Python(TensorFlow)多模光纤光束算法和GPU并行模拟
          • 🍠Python(PyTorch)硅光电倍增管和量化感知训练亚光子算法验证
          • 🍠Python(TensorFlow)衍射光学层卷积算法模拟(英伟达GPU)
          • 🍠Python非线性光学映射数据压缩算法
          • 🍠Python(JAX)散射矩阵非线性神经算法和化学散射算法
          • 🍠Python(C++)植入团图嵌入降维算法
          • 🍠MATLAB(R和C++)大肠杆菌合成生物机械数学模型
          • 🍠Python(C++)大尺度分层边值时变图统计推理并行算法
          • 🍠Python层内层外多图布局图基分析
          • 🍠C++和R穿刺针吸活检肿瘤算法模型模拟和进化动力学量化差异模型
          • 🍠Python药物副作用生物图分析算法和矩阵降维算法
          • 🍠Python鲁汶意外莱顿复杂图拓扑分解算法
          • 🍠Python群体趋向性潜关联有向无向多图层算法
          • 🍠Python和MATLAB网络尺度结构和幂律度大型图生成式模型算法
          • 🍠MATLAB和Python零模型社会生物生成式结构化图
          • 🍠Python种群邻接矩阵彗星风筝进化图算法
          • 🍠Python和C++骨髓细胞进化解析数学模型
          • 🍠Python和C++行人轨迹预推算和空间机器人多传感融合双图算法模型
          • 🍠Python和C++全球导航卫星系统和机器人姿态触觉感知二分图算法
          • 🍠Python蜂窝通信Wi-Fi和GPU变分推理及暴力哈希加密协议图消息算法
          • 🍠Python精神病算法和自我认知异类数学模型
          • 🍠Python视觉轨迹几何惯性单元超维计算结构算法
          • 🍠Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路
          • 🍠Python微磁学磁倾斜和西塔规则算法
          • 🍠Python热涨落流体力学求解算法和英伟达人工智能核评估模型
          • 🍠C++ | Python气泡表面张力和预期形态及上升速度数值模型
          • 🍠Python政府短期或长期债务李嘉图等价模型状态矩阵
          • 🍠Python | C++ | MATLAB机器人正逆向运动学动力学求解器及算法
          • 🍠Python社会经济 | 怀特的异方差一致估计量
          • 🍠Python | R 潜在混合模型
          • 🍠Python | MATLAB | R 心理认知数学图形模型推断
          • 🍠Python | R 雌雄配对和鱼仔变异马尔可夫链
          • 🍠Python高层解雇和客户活跃度量化不确定性模型
          • 🍠Python | R | MATLAB群体消息和遗传病筛选多元统计模型
          • 🍠Python问题决策影响图结构化概率模型
          • 🍠Python | R | MATLAB高斯过程统计模型
          • 🍠Python燃气轮机汽车钢棒整流电路控制图统计模型过程潜力分析
          • 🍠Python汽车油耗活塞循环原木纱强度及电阻覆盖率现实统计模型计算
          • 🍠Python射频电磁肿瘤热疗数学模型和电磁爆炸性变化统计推理模型
          • 🍠Python流感传播感染康复图模型计算和算法
          • 🍠Python流感常微分方程房室数学模型
          • 🍠Python脑溶质扩散生理几何模型计算
          • 🍠Python机器人动力学和细胞酶常微分方程
          • 🍠Python临床医学病态图学习
          • 🍠Python竞技比赛流体动力学艺术品和药物质量图学习
          • 🍠Python元胞自动机沙堆糖景堵塞模型图学习
          • 🍠Python图嵌入信息潜在表征算法
          • 🍠Python非线性图嵌入和降维技术拉普拉斯特征图算法
          • 🍠C代码快速傅里叶变换-分类和推理-常微分和偏微分方程
          • 🍠超定和欠定线性方程组C代码数值算法
          • 🍠Python贪心算法(Kruskal算法)生成对抗网络和强化学习数据集(计算机视觉)
          • 🍠Dijkstra算法 | 迪杰斯特拉算法-迷宫解算器可视化
          • 🍠Python和Pygame绘制自动驾驶和移动机器本地规划器算法
          • 🍠Python简单线性回归算法实现及应用示例
          • 🍠Python柯布-道格拉斯效用函数规划食品预算和拟合前沿生产函数评估农作物生产效率
          • 🍠伯努利方程示例 Python 计算(汽水流体和喷泉工程)
        • 🍍物理学 | Physics
          • 🍍Python骨架肌体运动学数学模型
          • 🍍Python地震波逆问题解构算法复杂信号分析
          • 🍍Python自行车六自由度飞行器多连接件非线性运动方程模型
          • 🍍C++(Python)肥皂泡沫普拉托边界膜曲面模型算法
          • 🍍Python和MATLAB粘性力接触力动态模型半隐式欧拉算法
          • 🍍Python湍流隐式模型耗散粘性方程和大涡流模拟
          • 🍍Python自动造波器椭圆曲线波孤子解
          • 🍍Python光束三维二维标量场和算法
          • 🍍C++风流和MATLAB | Python | CUDA 库埃特流泊肃叶流薄膜流体
          • 🍍Python和R水力电导率和达西流神经算子
          • 🍍Python计算物理粒子及拉格朗日和哈密顿动力学
          • 🍍Python和C++计算物理光学波形化学结构数学方程
          • 🍍Python物理学有限差分微分求解器和动画波形传播
          • 🍍Python数值和符号算法计算及3D视图物理数学波形方程
          • 🍍Python(符号计算常微分方程)谐振子牛顿运动方程
          • 🍍流体力学分析和应用基础
          • 🍍牛顿第二定律沿流线流动粒子 Python 分析
        • 🫑数学 | Math
          • 🫑MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制
          • 🫑Python高压电容导电体和水文椭圆微分
          • 🫑Python低溫半导体电子束量子波算法计算
          • 🫑Python火焰锋动力学和浅水表面波浪偏微分方程
          • 🫑Python | C++漂移扩散方程和无风险套利公式算法微分
          • 🫑Python产品价格弹性生命周期和客户群利润点概率推理数学模型
          • 🫑Python和MATLAB及C++资产价格看涨看跌对冲模型和微积分
          • 🫑Python线性代数数字图像和小波分析之二
          • 🫑Python线性代数傅里叶分析和动态系统模拟分析之一
          • 🫑Python和Julia TensorFlow科学计算常微分方程求解器
          • 🫑统计学Python计算工具
          • 🫑Python数学任务统计微积分和代数
          • 🫑Python贝叶斯推理和概率规划
          • 🫑Python验证厚尾数据遵循幂律分布
          • 🫑Python解离散数学
          • 🫑Python切比雪夫不等式验证大数定律
          • 🫑R大数定律模拟圆周率
          • 🫑Python 微积分数值和符号计算(计算机代数)
          • 🫑Python数学应用(矢量图形-微积分-物理模拟-机器学习)
        • 🥦工程 | Engineering
          • 🥦MATLAB和Python发那科ABB库卡史陶比尔工业机器人模拟示教框架
          • 🥦Python人形机踊跃跨栏举重投篮高维数动作算法模型
          • 🥦Python协作运动机器人刚体力学解耦模型
          • 🥦Python | C# | MATLAB 库卡机器人微分运动学 | 欧拉-拉格朗日动力学 | 混合动力控制
          • 🥦MATLAB雨刮通风空调模糊器和发电厂电力聚变器卷积神经
          • 🥦MATLAB和Python网格桁架框架构件刚度载荷位移和受力微分方程
          • 🥦Python氮氧甲烷乙烷乙烯丙烯气体和固体热力学模型计算
          • 🥦Python社群纽带关系谱和图神经
          • 🥦R和Python市场篮分析算法及行为分析模型
          • 🥦Julia和Python蛛网图轨道图庞加莱截面曲面确定性非线性系统
          • 🥦Python和C++数学物理计算分形热力学静电学和波动方程
          • 🥦Python和C++音调音符规划和算法
          • 🥦Python和Julia河流湖泊沿海水域特征数值算法模型
          • 🥦Python和C++热释光和光激发光朗伯W函数辉光曲线反卷积
          • 🥦Python和R热释光动能朗伯W函数解析方程
          • 🥦Julia和Python线性矩阵机器学习和动态模型代码计算
          • 🥦Julia劳动力市场经济数学模型价值策略选择
          • 🥦Python神经网络提取音乐数据和开放C++音频图形框架
          • 🥦Python流体数据统计模型和浅水渗流平流模型模拟
          • 🥦Python量化噪声卷积信号和傅里叶时频分析
          • 🥦C++数字化声音信号处理和数控振荡合成
          • 🥦GPU(CUDA)异构众核数值计算
          • 🥦Python和命令行脚本(C/C++)嗅探物联网络及短中远程无线电
          • 🥦Kali Linux社会工程和网络应用攻击渗透测试
          • 🥦Kali Linux(后期利用)活动目录攻击和无线网络渗透测试
          • 🥦Kali Linux侦察和网络渗透测试
          • 🥦移动机器人嵌入式控制应用及MATLAB仿真
          • 🥦Kali Linux渗透测试环境建立
          • 🥦LabView数学和龙格-库塔-PID-指数平滑-模特卡洛模拟
          • 🥦LAUNCHXL-F2806x嵌入式VisSim和PLECS电力驱动无传感器控制
          • 🥦MatLab和Spice电路分析,信号处理和滤波器设计入门
        • 🥭计算 | Computing
          • 🥭Python铅蓄放电热力学无量纲模拟分析
          • 🥭Python和MATLAB锂电铅蓄电化学微分模型和等效电路
          • 🥭MATLAB(Octave)混电动力能耗评估
          • 🥭CUDA(C++)电磁(斯特拉顿-楚矢量衍射积分)蒙特卡洛计算分析
          • 🥭CUDA(C)磁态蒙特卡洛和传输矩阵多GPU并行计算分析
          • 🥭Python微震波频散相速分析
          • 🥭Python噪声敏感度和沉积区震动波
          • 🥭Python水循环标准化对比算法实现
          • 🥭Python或R时偏移算法实现
          • 🥭Python空间地表联动贝叶斯地震风险计算模型
          • 🥭Python气象辐射光谱能量平衡模型
          • 🥭Python自适应光学模态星形小波分析和像差算法
          • 🥭Python莫兰生死抑制放大进化图
          • 🥭Python烟雾液体弹性力微分模拟 | 出租车往返速度微分计算
          • 🥭C++和Python通信引文道路社评电商大规模行为图结构数据模型
          • 🥭Python计算和可视化线性和非线性统计问题
          • 🥭Python三维体素化网格和点云计算
          • 🥭CUDA Cpp正电子发射断层扫描仪校准和图像重建—蒙特卡洛3D伊辛模型
          • 🥭CUDA Cpp并行计算二维和三维网格
          • 🥭NetworkX(Python)网络分析图论数学(线性代数-统计推理)
          • 🥭Python和NetworkX有向图计算节点欧几里德距离最短路径
          • 🥭距离矩阵路径优化Python Dijkstra(迪杰斯特拉)算法和冲突驱动子句学习
          • 🥭Python卡尔曼滤波器OpenCV跟踪和预测物体的轨迹
          • 🥭Julia概率分布和统计推理
          • 🥭PLECS分段线性电路仿真锂离子电池建模分析
          • 🥭PLECS分段线性电路仿真电力电子转换器
          • 🥭矢量图分析和PLECS分段线性电路仿真基于模型的扭矩控制器电力驱动
          • 🥭MATLAB和PLECS分段线性电路仿真电力驱动
          • 🥭Python构建统计学逻辑
          • 🥭LabVIEW扫描成像或同步模拟电压生成和数据采集
          • 🥭LabVIEW数据采集
          • 🥭CUDA(C)和PyCUDA(Python) GPU加速OpenCV视觉
          • 🥭MATLAB滤波算法和LabVIEW心电图诊断系统
        • 🏈指点迷津 | Brief
Powered by GitBook
On this page
  • 🍁CUDA蒙特卡洛
  • 🍪语言内容分比
  • 🍇CUDA张量计算

Was this helpful?

  1. Interdisciplinary Perspective-学際的視点
  2. 亚图跨际
  3. 归档
  4. 计算 | Computing

CUDA(C++)电磁(斯特拉顿-楚矢量衍射积分)蒙特卡洛计算分析

1. 使用英伟达 V100 GPU计算测试分析。 2. 计算斯特拉顿-楚矢量衍射积分,使用蒙特卡洛法计算分析聚焦激光场粒子与电磁场之间相互作用。 3. 使用曲面积分形式表示抛物面镜矢量衍射积分。 4. 使用切比雪夫微分矩阵法解振荡积分。 5. 使用一种洛伦兹力跳蛙算法解带电粒子与激光脉冲碰撞的轨迹。

PreviousMATLAB(Octave)混电动力能耗评估NextCUDA(C)磁态蒙特卡洛和传输矩阵多GPU并行计算分析

Last updated 7 months ago

Was this helpful?

🍁CUDA蒙特卡洛

🍪语言内容分比

🍇CUDA张量计算

NVIDIA Tensor Core 专门用于执行混合精度的广义矩阵乘法运算,即广义矩阵乘法输入矩阵精度较低,而广义矩阵乘法输出矩阵精度较高。混合精度训练和推理是加速神经网络训练和推理的关键技术。

D=(A0,0A0,1A0,2A0,3A1,0A1,1A1,2A1,3A2,0A2,1A2,2A2,3A3,0A3,1A3,2A3,3)(B0,0B0,1B0,2B0,3B1,0B1,1B1,2B1,3B2,0B2,1B2,2B2,3B3,0B3,1B3,2B3,3)+(C0,0C0,1C0,2C0,3C1,0C1,1C1,2C1,3C2,0C2,1C2,2C2,3C3,0C3,1C3,2C3,3)D =\left(\begin{array}{|l|l|l|l|} \hline A_{0,0} & A_{0,1} & A_{0,2} & A_{0,3} \\ \hline A_{1,0} & A_{1,1} & A_{1,2} & A_{1,3} \\ \hline A_{2,0} & A_{2,1} & A_{2,2} & A_{2,3} \\ \hline A_{3,0} & A_{3,1} & A_{3,2} & A_{3,3} \\ \hline \end{array}\right)\left(\begin{array}{|l|l|l|l|} \hline B_{0,0} & B_{0,1} & B_{0,2} & B_{0,3} \\ \hline B_{1,0} & B_{1,1} & B_{1,2} & B_{1,3} \\ \hline B_{2,0} & B_{2,1} & B_{2,2} & B_{2,3} \\ \hline B_{3,0} & B_{3,1} & B_{3,2} & B_{3,3} \\ \hline \end{array}\right) \quad+\left(\begin{array}{|l|l|l|l|} \hline C_{0,0} & C_{0,1} & C_{0,2} & C_{0,3} \\ \hline C_{1,0} & C_{1,1} & C_{1,2} & C_{1,3} \\ \hline C_{2,0} & C_{2,1} & C_{2,2} & C_{2,3} \\ \hline C_{3,0} & C_{3,1} & C_{3,2} & C_{3,3} \\ \hline \end{array}\right)D=​A0,0​A1,0​A2,0​A3,0​​A0,1​A1,1​A2,1​A3,1​​A0,2​A1,2​A2,2​A3,2​​A0,3​A1,3​A2,3​A3,3​​​​​B0,0​B1,0​B2,0​B3,0​​B0,1​B1,1​B2,1​B3,1​​B0,2​B1,2​B2,2​B3,2​​B0,3​B1,3​B2,3​B3,3​​​​+​C0,0​C1,0​C2,0​C3,0​​C0,1​C1,1​C2,1​C3,1​​C0,2​C1,2​C2,2​C3,2​​C0,3​C1,3​C2,3​C3,3​​​​

由于 NVIDIA Tensor Cores 是专为广义矩阵乘法设计的,因此使用 NVIDIA Tensor Core 的广义矩阵乘法吞吐量比使用更适合更通用的并行编程的 NVIDIA CUDA Cores 所能实现的吞吐量高得多。

NVIDIA CUDA 允许用户在 warp 级别编程 Tensor Core 广义矩阵乘法计算。虽然每个 Tensor Core 只能针对不同数据类型执行某些特定小尺寸的矩阵乘法,但大型广义矩阵乘法可以分为多个小型广义矩阵乘法并进行累积。

A=[A1,1dbm×dbkA1,2dbm×dbk…A1,kdmm×dbkA2,1dmm×dbkA2,2dbm×dbk⋯A2,k/dbkdbm×dbk⋮⋮⋱⋮Am/dmm,1dmb×dbkAm/dmm,2dbm×dbk⋯Am/dbm,k/dbkdbm×dbk]A=\left[\begin{array}{cccc} A_{1,1}^{d_{b m} \times d_{b k}} & A_{1,2}^{d_{b m} \times d_{b k}} & \ldots & A_{1, k}^{d_{m m} \times d_{b k}} \\ A_{2,1}^{d_{m m} \times d_{b k}} & A_{2,2}^{d_{b m} \times d_{b k}} & \cdots & A_{2, k / d_{b k}}^{d_{b m} \times d_{b k}} \\ \vdots & \vdots & \ddots & \vdots \\ A_{m / d_{m m}, 1}^{d_{m b} \times d_{b k}} & A_{m / d_{m m}, 2}^{d_{b m} \times d_{b k}} & \cdots & A_{m / d_{b m}, k / d_{b k}}^{d_{b m} \times d_{b k}} \end{array}\right]A=​A1,1dbm​×dbk​​A2,1dmm​×dbk​​⋮Am/dmm​,1dmb​×dbk​​​A1,2dbm​×dbk​​A2,2dbm​×dbk​​⋮Am/dmm​,2dbm​×dbk​​​…⋯⋱⋯​A1,kdmm​×dbk​​A2,k/dbk​dbm​×dbk​​⋮Am/dbm​,k/dbk​dbm​×dbk​​​​

B=[B1,1dbk×dbnB1,2dbk×dbn…B1,n/dbndbk×dbnB2,1dbk×dbnB2,2dbk×dbn…B2,n/dbndbk×dbn⋮⋮⋱⋮Bk/dbk,1dbkdbnBk/dbk,2dbk×dbn⋯Bk/dbk,n/dbndbk×dbn]B=\left[\begin{array}{cccc} B_{1,1}^{d_{b k} \times d_{b n}} & B_{1,2}^{d_{b k} \times d_{b n}} & \ldots & B_{1, n / d_{b n}}^{d_{b k} \times d_{b n}} \\ B_{2,1}^{d_{b k} \times d_{b n}} & B_{2,2}^{d_{b k} \times d_{b n}} & \ldots & B_{2, n / d_{b n}}^{d_{b k} \times d_{b n}} \\ \vdots & \vdots & \ddots & \vdots \\ B_{k / d_{b k}, 1}^{d_{b k} d_{b n}} & B_{k / d_{b k}, 2}^{d_{b k} \times d_{b n}} & \cdots & B_{k / d_{b k}, n / d_{b n}}^{d_{b k} \times d_{b n}} \end{array}\right]B=​B1,1dbk​×dbn​​B2,1dbk​×dbn​​⋮Bk/dbk​,1dbk​dbn​​​B1,2dbk​×dbn​​B2,2dbk​×dbn​​⋮Bk/dbk​,2dbk​×dbn​​​……⋱⋯​B1,n/dbn​dbk​×dbn​​B2,n/dbn​dbk​×dbn​​⋮Bk/dbk​,n/dbn​dbk​×dbn​​​​

C=[C1,1dbm×dbnC1,2dbm×dbn…C1,n/dbndbm×dbnC2,1dbm×dbnC2,2dbm×dbn…C2,n/dbndbm×dmn⋮⋮⋱⋮Cm/dbm,1dbm×dlnCm/dbm,2dbn×dbn⋯Cm/dbm,n/dbndbm×dbn]C=\left[\begin{array}{cccc} C_{1,1}^{d_{b m} \times d_{b n}} & C_{1,2}^{d_{b m} \times d_{b n}} & \ldots & C_{1, n / d_{b n}}^{d_{b m} \times d_{b n}} \\ C_{2,1}^{d_{b m} \times d_{b n}} & C_{2,2}^{d_{b m} \times d_{b n}} & \ldots & C_{2, n / d_{b n}}^{d_{b m} \times d_{m n}} \\ \vdots & \vdots & \ddots & \vdots \\ C_{m / d_{b m}, 1}^{d_{b m} \times d_{l n}} & C_{m / d_{b m}, 2}^{d_{b n} \times d_{b n}} & \cdots & C_{m / d_{b m}, n / d_{b n}}^{d_{b m} \times d_{b n}} \end{array}\right]C=​C1,1dbm​×dbn​​C2,1dbm​×dbn​​⋮Cm/dbm​,1dbm​×dln​​​C1,2dbm​×dbn​​C2,2dbm​×dbn​​⋮Cm/dbm​,2dbn​×dbn​​​……⋱⋯​C1,n/dbn​dbm​×dbn​​C2,n/dbn​dbm​×dmn​​⋮Cm/dbm​,n/dbn​dbm​×dbn​​​​

D=[D1,1dbm×dbnD1,2dbm×dbn…D1,n/dbndbm×dbnD2,1dbm×dbnD2,2dbm×dbn…D2,n/dbndbm×dmn⋮⋮⋱⋮Dm/dbm,1dbm×dbnDm/dbm,2dbm×dbn⋯Dm/dbm,n/dbndbn×dlm]D=\left[\begin{array}{cccc} D_{1,1}^{d_{b m} \times d_{b n}} & D_{1,2}^{d_{b m} \times d_{b n}} & \ldots & D_{1, n / d_{b n}}^{d_{b m} \times d_{b n}} \\ D_{2,1}^{d_{b m} \times d_{b n}} & D_{2,2}^{d_{b m} \times d_{b n}} & \ldots & D_{2, n / d_{b n}}^{d_{b m} \times d_{m n}} \\ \vdots & \vdots & \ddots & \vdots \\ D_{m / d_{b m}, 1}^{d_{b m} \times d_{b n}} & D_{m / d_{b m}, 2}^{d_{b m} \times d_{b n}} & \cdots & D_{m / d_{b m}, n / d_{b n}}^{d_{b n} \times d_{l_m}} \end{array}\right]D=​D1,1dbm​×dbn​​D2,1dbm​×dbn​​⋮Dm/dbm​,1dbm​×dbn​​​D1,2dbm​×dbn​​D2,2dbm​×dbn​​⋮Dm/dbm​,2dbm​×dbn​​​……⋱⋯​D1,n/dbn​dbm​×dbn​​D2,n/dbn​dbm​×dmn​​⋮Dm/dbm​,n/dbn​dbn​×dlm​​​​​

D中的每个小矩阵都被计算为多个小的广义矩阵乘法并进行累积。

Dim,ind×d=∑ik=1k/dAim,ikd×dBik,ind×dD_{i_m, i_n}^{d \times d}=\sum_{i_k=1}^{k / d} A_{i_m, i_k}^{d \times d} B_{i_k, i_n}^{d \times d}Dim​,in​d×d​=ik​=1∑k/d​Aim​,ik​d×d​Bik​,in​d×d​

在此,将主要关注广义矩阵乘法运算中的矩阵乘法部分,令 C = 0。

 #include <cassert>
 #include <chrono>
 #include <functional>
 #include <iomanip>
 #include <iostream>
 #include <random>
 #include <utility>
 #include <vector>
 ​
 #include <cuda_runtime.h>
 #include <mma.h>
 ​
 #define CHECK_CUDA_ERROR(val) check((val), #val, __FILE__, __LINE__)
 template <typename T>
 void check(T err, const char* const func, const char* const file,
            int const line)
 {
     if (err != cudaSuccess)
     {
         std::cerr << "CUDA Runtime Error at: " << file << ":" << line
                   << std::endl;
         std::cerr << cudaGetErrorString(err) << " " << func << std::endl;
         std::exit(EXIT_FAILURE);
     }
 }
 ​
 #define CHECK_LAST_CUDA_ERROR() checkLast(__FILE__, __LINE__)
 void checkLast(const char* const file, int const line)
 {
     cudaError_t const err{cudaGetLastError()};
     if (err != cudaSuccess)
     {
         std::cerr << "CUDA Runtime Error at: " << file << ":" << line
                   << std::endl;
         std::cerr << cudaGetErrorString(err) << std::endl;
         std::exit(EXIT_FAILURE);
     }
 }
 ​
 template <class T>
 float measure_performance(std::function<T(cudaStream_t)> bound_function,
                           cudaStream_t stream, int num_repeats = 100,
                           int num_warmups = 100)
 {
     cudaEvent_t start, stop;
     float time;
 ​
     CHECK_CUDA_ERROR(cudaEventCreate(&start));
     CHECK_CUDA_ERROR(cudaEventCreate(&stop));
 ​
     for (int i{0}; i < num_warmups; ++i)
     {
         bound_function(stream);
     }
 ​
     CHECK_CUDA_ERROR(cudaStreamSynchronize(stream));
 ​
     CHECK_CUDA_ERROR(cudaEventRecord(start, stream));
     for (int i{0}; i < num_repeats; ++i)
     {
         bound_function(stream);
     }
     CHECK_CUDA_ERROR(cudaEventRecord(stop, stream));
     CHECK_CUDA_ERROR(cudaEventSynchronize(stop));
     CHECK_LAST_CUDA_ERROR();
     CHECK_CUDA_ERROR(cudaEventElapsedTime(&time, start, stop));
     CHECK_CUDA_ERROR(cudaEventDestroy(start));
     CHECK_CUDA_ERROR(cudaEventDestroy(stop));
 ​
     float const latency{time / num_repeats};
 ​
     return latency;
 }
 ​
 ​
 template <typename T1, typename T2, int WMMA_M, int WMMA_N, int WMMA_K,
           typename WMMA_FRAG_LAYOUT_A, typename WMMA_FRAG_LAYOUT_B>
 __global__ void wmma_gemm_a_col_major_b_col_major(
     T1 const* A, T1 const* B, T2* C, uint32_t m, uint32_t n, uint32_t k,
     uint32_t lda, uint32_t ldb, uint32_t ldc, bool is_A_transpose,
     bool is_B_transpose, float alpha, float beta)
 {
 ​
     uint32_t const warpM{(blockIdx.x * blockDim.x + threadIdx.x) / warpSize};
     uint32_t const warpN{blockIdx.y * blockDim.y + threadIdx.y};
 ​
     nvcuda::wmma::fragment<nvcuda::wmma::matrix_a, WMMA_M, WMMA_N, WMMA_K, T1,
                            WMMA_FRAG_LAYOUT_A>
         a_frag{};
     nvcuda::wmma::fragment<nvcuda::wmma::matrix_b, WMMA_M, WMMA_N, WMMA_K, T1,
                            WMMA_FRAG_LAYOUT_B>
         b_frag{};
     nvcuda::wmma::fragment<nvcuda::wmma::accumulator, WMMA_M, WMMA_N, WMMA_K,
                            T2>
         acc_frag{};
     nvcuda::wmma::fragment<nvcuda::wmma::accumulator, WMMA_M, WMMA_N, WMMA_K,
                            T2>
         c_frag{};
 ​
 ​
     nvcuda::wmma::fill_fragment(acc_frag, static_cast<T2>(0));
 ​
     for (uint32_t ki{0}; ki < k; ki += WMMA_K)
     {
      
         uint32_t const matrix_mma_a_row_idx{is_A_transpose ? ki
                                                            : warpM * WMMA_M};
         uint32_t const matrix_mma_a_col_idx{is_A_transpose ? warpM * WMMA_M
                                                            : ki};
   
         uint32_t const matrix_mma_b_row_idx{is_B_transpose ? warpN * WMMA_N
                                                            : ki};
         uint32_t const matrix_mma_b_col_idx{is_B_transpose ? ki
                                                            : warpN * WMMA_N};
 ​
 ​
         if (matrix_mma_a_row_idx < (is_A_transpose ? k : m) &&
             matrix_mma_a_col_idx < (is_A_transpose ? m : k) &&
             matrix_mma_b_row_idx < (is_B_transpose ? n : k) &&
             matrix_mma_b_col_idx < (is_B_transpose ? k : n))
         {
 ​
             T1 const* matrix_mma_a_mptr{A + matrix_mma_a_row_idx +
                                         matrix_mma_a_col_idx * lda};
             T1 const* matrix_mma_b_mptr{B + matrix_mma_b_row_idx +
                                         matrix_mma_b_col_idx * ldb};
 ​
             nvcuda::wmma::load_matrix_sync(a_frag, matrix_mma_a_mptr, lda);
             nvcuda::wmma::load_matrix_sync(b_frag, matrix_mma_b_mptr, ldb);
 ​
             nvcuda::wmma::mma_sync(acc_frag, a_frag, b_frag, acc_frag);
         }
     }
 ​
     uint32_t const matrix_mma_c_row_idx{warpM * WMMA_M};
     uint32_t const matrix_mma_c_col_idx{warpN * WMMA_N};
 ​
     if (matrix_mma_c_row_idx < m && matrix_mma_c_col_idx < n)
     {
         T2* matrix_mma_c_mptr{C + matrix_mma_c_row_idx +
                               matrix_mma_c_col_idx * ldc};
         nvcuda::wmma::load_matrix_sync(c_frag, matrix_mma_c_mptr, ldc,
                                        nvcuda::wmma::mem_col_major);
 ​
         for (uint32_t i = 0; i < c_frag.num_elements; i++)
         {
             c_frag.x[i] = alpha * acc_frag.x[i] + beta * c_frag.x[i];
         }
 ​
         nvcuda::wmma::store_matrix_sync(matrix_mma_c_mptr, c_frag, ldc,
                                         nvcuda::wmma::mem_col_major);
     }
 }
 ​
 template <typename T1, typename T2>
 void launch_wmma_mm(T1 const* A, T1 const* B, T2* C, uint32_t m, uint32_t n,
                     uint32_t k, bool is_A_transpose, bool is_B_transpose,
                     cudaStream_t stream)
 {
     uint32_t const lda{is_A_transpose ? k : m};
     uint32_t const ldb{is_B_transpose ? n : k};
     uint32_t const ldc{m};
     float const alpha{1.0f};
     float const beta{0.0f};
 ​
     constexpr int WMMA_M{16};
     constexpr int WMMA_N{16};
     constexpr int WMMA_K{16};
 ​
     constexpr int WARP_SIZE{32};
 ​
     dim3 gridDim;
     dim3 blockDim;
 ​
     int const num_warps_x = 4;
     int const num_warps_y = 4;
     blockDim.x = num_warps_x * WARP_SIZE;
     blockDim.y = num_warps_y;
 ​
     gridDim.x = (m + (WMMA_M * num_warps_x - 1)) / (WMMA_M * num_warps_x);
     gridDim.y = (n + WMMA_N * num_warps_y - 1) / (WMMA_N * num_warps_y);
 ​
     if ((!is_A_transpose) && (!is_B_transpose))
     {
         wmma_gemm_a_col_major_b_col_major<T1, T2, WMMA_M, WMMA_N, WMMA_K,
                                           nvcuda::wmma::col_major,
                                           nvcuda::wmma::col_major>
             <<<gridDim, blockDim, 0, stream>>>(A, B, C, m, n, k, lda, ldb, ldc,
                                                is_A_transpose, is_B_transpose,
                                                alpha, beta);
     }
 ​
     else if ((is_A_transpose) && (!is_B_transpose))
     {
         wmma_gemm_a_col_major_b_col_major<T1, T2, WMMA_M, WMMA_N, WMMA_K,
                                           nvcuda::wmma::row_major,
                                           nvcuda::wmma::col_major>
             <<<gridDim, blockDim, 0, stream>>>(A, B, C, m, n, k, lda, ldb, ldc,
                                                is_A_transpose, is_B_transpose,
                                                alpha, beta);
     }
 ​
     else if ((!is_A_transpose) && (is_B_transpose))
     {
         wmma_gemm_a_col_major_b_col_major<T1, T2, WMMA_M, WMMA_N, WMMA_K,
                                           nvcuda::wmma::col_major,
                                           nvcuda::wmma::row_major>
             <<<gridDim, blockDim, 0, stream>>>(A, B, C, m, n, k, lda, ldb, ldc,
                                                is_A_transpose, is_B_transpose,
                                                alpha, beta);
     }
 ​
     else
     {
         wmma_gemm_a_col_major_b_col_major<T1, T2, WMMA_M, WMMA_N, WMMA_K,
                                           nvcuda::wmma::row_major,
                                           nvcuda::wmma::row_major>
             <<<gridDim, blockDim, 0, stream>>>(A, B, C, m, n, k, lda, ldb, ldc,
                                                is_A_transpose, is_B_transpose,
                                                alpha, beta);
     }
     CHECK_LAST_CUDA_ERROR();
 }
 ​
 template <typename T1, typename T2>
 void mm_a_col_major_b_col_major(T1 const* A, T1 const* B, T2* C, uint32_t m,
                                 uint32_t n, uint32_t k, uint32_t lda,
                                 uint32_t ldb, uint32_t ldc, bool is_A_transpose,
                                 bool is_B_transpose)
 {
     for (uint32_t ni{0}; ni < n; ++ni)
     {
         for (uint32_t mi{0}; mi < m; ++mi)
         {
 ​
             T2 accum{0};
             if ((!is_A_transpose) && (!is_B_transpose))
             {
                 for (uint32_t ki{0}; ki < k; ++ki)
                 {
                     accum += A[ki * lda + mi] * B[ni * ldb + ki];
                 }
             }
             else if ((is_A_transpose) && (!is_B_transpose))
             {
                 for (uint32_t ki{0}; ki < k; ++ki)
                 {
                     accum += A[mi * lda + ki] * B[ni * ldb + ki];
                 }
             }
             else if ((!is_A_transpose) && (is_B_transpose))
             {
                 for (uint32_t ki{0}; ki < k; ++ki)
                 {
                     accum += A[ki * lda + mi] * B[ki * ldb + ni];
                 }
             }
             else
             {
                 for (uint32_t ki{0}; ki < k; ++ki)
                 {
                     accum += A[mi * lda + ki] * B[ki * ldb + ni];
                 }
             }
             C[ni * ldc + mi] = accum;
         }
     }
 }
 ​
 template <typename T1, typename T2>
 void launch_mm(T1 const* A, T1 const* B, T2* C, uint32_t m, uint32_t n,
                uint32_t k, bool is_A_transpose, bool is_B_transpose)
 {
     uint32_t const lda{is_A_transpose ? k : m};
     uint32_t const ldb{is_B_transpose ? n : k};
     uint32_t const ldc{m};
     mm_a_col_major_b_col_major(A, B, C, m, n, k, lda, ldb, ldc, is_A_transpose,
                                is_B_transpose);
 }
 ​
 void fill_random_float_values(float* arr, size_t n,
                               std::default_random_engine& e)
 {
     std::uniform_real_distribution<float> uniform_dist(-256, 256);
     for (size_t i{0}; i < n; ++i)
     {
         arr[i] = uniform_dist(e);
     }
 }
 ​
 void fill_random_int8_values(int8_t* arr, size_t n,
                              std::default_random_engine& e)
 {
     std::uniform_int_distribution<int8_t> uniform_dist(-128, 127);
     for (size_t i{0}; i < n; ++i)
     {
         arr[i] = uniform_dist(e);
     }
 }
 ​
 void fill_random_int32_values(int32_t* arr, size_t n,
                               std::default_random_engine& e)
 {
     std::uniform_int_distribution<int32_t> uniform_dist(-128, 127);
     for (size_t i{0}; i < n; ++i)
     {
         arr[i] = uniform_dist(e);
     }
 }
 ​
 void float2half(__half* half_arr, float const* float_arr, size_t n)
 {
     for (size_t i{0}; i < n; ++i)
     {
         half_arr[i] = __float2half(float_arr[i]);
     }
 }
 ​
 template <typename T>
 float get_avg_abs_diff_ratio(T const* arr_1, T const* arr_2, size_t n)
 {
     float sum_abs_diff_ratio{0};
     for (size_t i{0}; i < n; ++i)
     {
         sum_abs_diff_ratio += std::abs(static_cast<float>(arr_1[i]) -
                                        static_cast<float>(arr_2[i])) /
                               std::abs(static_cast<float>(arr_1[i]) +
                                        static_cast<float>(arr_2[i]));
     }
     return sum_abs_diff_ratio / n;
 }
 ​
 template <typename T>
 bool array_equal(T const* arr_1, T const* arr_2, size_t n)
 {
     for (size_t i{0}; i < n; ++i)
     {
         if (arr_1[i] != arr_2[i])
         {
             return false;
         }
     }
     return true;
 }
 ​
 void print_test_header(bool is_A_transpose, bool is_B_transpose)
 {
     if ((!is_A_transpose) && (!is_B_transpose))
     {
         std::cout << "C = A * B" << std::endl;
     }
     else if ((is_A_transpose) && (!is_B_transpose))
     {
         std::cout << "C = A^T * B" << std::endl;
     }
     else if ((!is_A_transpose) && (is_B_transpose))
     {
         std::cout << "C = A * B^T" << std::endl;
     }
     else
     {
         std::cout << "C = A^T * B^T" << std::endl;
     }
 }
 ​
 int main()
 {
     constexpr int num_repeats{10};
     constexpr int num_warmups{10};
 ​
     uint32_t const matrix_size_m{1024};
     uint32_t const matrix_size_n{1024};
     uint32_t const matrix_size_k{1024};
     std::cout << "Matrix Sizes" << std::endl;
     std::cout << "M: " << matrix_size_m << std::endl;
     std::cout << "N: " << matrix_size_n << std::endl;
     std::cout << "K: " << matrix_size_k << std::endl;
 ​
     std::default_random_engine random_engine(0);
 ​
     cudaStream_t stream;
     CHECK_CUDA_ERROR(cudaStreamCreate(&stream));
 ​
     std::cout << "FP16 HMMA" << std::endl;
     std::vector<float> matrix_a_float(matrix_size_m * matrix_size_k);
     std::vector<float> matrix_b_float(matrix_size_k * matrix_size_n);
     std::vector<__half> matrix_a_half(matrix_size_m * matrix_size_k);
     std::vector<__half> matrix_b_half(matrix_size_k * matrix_size_n);
     std::vector<float> matrix_c_float(matrix_size_m * matrix_size_n);
     std::vector<float> matrix_c_float_reference(matrix_size_m * matrix_size_n);
 ​
     float* h_matrix_a_float{matrix_a_float.data()};
     float* h_matrix_b_float{matrix_b_float.data()};
     __half* h_matrix_a_half{matrix_a_half.data()};
     __half* h_matrix_b_half{matrix_b_half.data()};
     float* h_matrix_c_float{matrix_c_float.data()};
     float* h_matrix_c_float_reference{matrix_c_float_reference.data()};
 ​
     fill_random_float_values(h_matrix_a_float, matrix_a_float.size(),
                              random_engine);
     fill_random_float_values(h_matrix_b_float, matrix_b_float.size(),
                              random_engine);
     fill_random_float_values(h_matrix_c_float, matrix_c_float.size(),
                              random_engine);
     fill_random_float_values(h_matrix_c_float_reference,
                              matrix_c_float_reference.size(), random_engine);
     float2half(h_matrix_a_half, h_matrix_a_float, matrix_a_float.size());
     float2half(h_matrix_b_half, h_matrix_b_float, matrix_b_float.size());
 ​
     half *d_matrix_a_half, *d_matrix_b_half;
     float* d_matrix_c_float;
 ​
     CHECK_CUDA_ERROR(cudaMalloc(&d_matrix_a_half,
                                 matrix_size_m * matrix_size_k * sizeof(half)));
     CHECK_CUDA_ERROR(cudaMalloc(&d_matrix_b_half,
                                 matrix_size_k * matrix_size_n * sizeof(half)));
     CHECK_CUDA_ERROR(cudaMalloc(&d_matrix_c_float,
                                 matrix_size_m * matrix_size_n * sizeof(float)));
 ​
     CHECK_CUDA_ERROR(cudaMemcpy(d_matrix_a_half, h_matrix_a_half,
                                 matrix_a_float.size() * sizeof(__half),
                                 cudaMemcpyHostToDevice));
     CHECK_CUDA_ERROR(cudaMemcpy(d_matrix_b_half, h_matrix_b_half,
                                 matrix_b_float.size() * sizeof(__half),
                                 cudaMemcpyHostToDevice));
 ​
     for (bool is_A_transpose : {true, false})
     {
         for (bool is_B_transpose : {true, false})
         {
             print_test_header(is_A_transpose, is_B_transpose);
             launch_mm(h_matrix_a_float, h_matrix_b_float,
                       h_matrix_c_float_reference, matrix_size_m, matrix_size_n,
                       matrix_size_k, is_A_transpose, is_B_transpose);
             launch_wmma_mm(d_matrix_a_half, d_matrix_b_half, d_matrix_c_float,
                            matrix_size_m, matrix_size_n, matrix_size_k,
                            is_A_transpose, is_B_transpose, stream);
             CHECK_CUDA_ERROR(cudaStreamSynchronize(stream));
 ​
             CHECK_CUDA_ERROR(cudaMemcpy(h_matrix_c_float, d_matrix_c_float,
                                         matrix_c_float.size() * sizeof(float),
                                         cudaMemcpyDeviceToHost));
 ​
             float const avg_abs_diff_ratio{get_avg_abs_diff_ratio(
                 h_matrix_c_float, h_matrix_c_float_reference,
                 matrix_c_float.size())};
             if (avg_abs_diff_ratio > 0.01)
             {
                 std::cout << "Got high average absolute diff ratio: "
                           << avg_abs_diff_ratio << std::endl;
             }
 ​
             std::function<void(cudaStream_t)> const function_hmma{std::bind(
                 launch_wmma_mm<__half, float>, d_matrix_a_half, d_matrix_b_half,
                 d_matrix_c_float, matrix_size_m, matrix_size_n, matrix_size_k,
                 is_A_transpose, is_B_transpose, std::placeholders::_1)};
             float const latency_hmma{measure_performance(
                 function_hmma, stream, num_repeats, num_warmups)};
             std::cout << std::fixed << std::setprecision(3)
                       << "HMMA Latency: " << latency_hmma << " ms" << std::endl;
         }
     }
 ​
     CHECK_CUDA_ERROR(cudaFree(d_matrix_a_half));
     CHECK_CUDA_ERROR(cudaFree(d_matrix_b_half));
     CHECK_CUDA_ERROR(cudaFree(d_matrix_c_float));
 ​
     std::cout << "INT8 IMMA" << std::endl;
     std::vector<int8_t> matrix_a_int8(matrix_size_m * matrix_size_k);
     std::vector<int8_t> matrix_b_int8(matrix_size_k * matrix_size_n);
     std::vector<int32_t> matrix_c_int32(matrix_size_m * matrix_size_n);
     std::vector<int32_t> matrix_c_int32_reference(matrix_size_m *
                                                   matrix_size_n);
 ​
     int8_t* h_matrix_a_int8{matrix_a_int8.data()};
     int8_t* h_matrix_b_int8{matrix_b_int8.data()};
     int32_t* h_matrix_c_int32{matrix_c_int32.data()};
     int32_t* h_matrix_c_int32_reference{matrix_c_int32_reference.data()};
 ​
     fill_random_int8_values(h_matrix_a_int8, matrix_a_int8.size(),
                             random_engine);
     fill_random_int8_values(h_matrix_b_int8, matrix_b_int8.size(),
                             random_engine);
     fill_random_int32_values(h_matrix_c_int32, matrix_c_int32.size(),
                              random_engine);
     fill_random_int32_values(h_matrix_c_int32_reference,
                              matrix_c_int32_reference.size(), random_engine);
 ​
     int8_t *d_matrix_a_int8, *d_matrix_b_int8;
     int32_t* d_matrix_c_int32;
 ​
     CHECK_CUDA_ERROR(cudaMalloc(
         &d_matrix_a_int8, matrix_size_m * matrix_size_k * sizeof(int8_t)));
     CHECK_CUDA_ERROR(cudaMalloc(
         &d_matrix_b_int8, matrix_size_k * matrix_size_n * sizeof(int8_t)));
     CHECK_CUDA_ERROR(cudaMalloc(
         &d_matrix_c_int32, matrix_size_m * matrix_size_n * sizeof(int32_t)));
 ​
     CHECK_CUDA_ERROR(cudaMemcpy(d_matrix_a_int8, h_matrix_a_int8,
                                 matrix_a_int8.size() * sizeof(int8_t),
                                 cudaMemcpyHostToDevice));
     CHECK_CUDA_ERROR(cudaMemcpy(d_matrix_b_int8, h_matrix_b_int8,
                                 matrix_b_int8.size() * sizeof(int8_t),
                                 cudaMemcpyHostToDevice));
 ​
     for (bool is_A_transpose : {true, false})
     {
         for (bool is_B_transpose : {true, false})
         {
             print_test_header(is_A_transpose, is_B_transpose);
             launch_mm(h_matrix_a_int8, h_matrix_b_int8,
                       h_matrix_c_int32_reference, matrix_size_m, matrix_size_n,
                       matrix_size_k, is_A_transpose, is_B_transpose);
             launch_wmma_mm(d_matrix_a_int8, d_matrix_b_int8, d_matrix_c_int32,
                            matrix_size_m, matrix_size_n, matrix_size_k,
                            is_A_transpose, is_B_transpose, stream);
             CHECK_CUDA_ERROR(cudaStreamSynchronize(stream));
             CHECK_CUDA_ERROR(cudaMemcpy(h_matrix_c_int32, d_matrix_c_int32,
                                         matrix_c_int32.size() * sizeof(int32_t),
                                         cudaMemcpyDeviceToHost));
 ​
             assert(array_equal(h_matrix_c_int32, h_matrix_c_int32_reference,
                                matrix_c_int32.size()));
 ​
             std::function<void(cudaStream_t)> const function_imma{
                 std::bind(launch_wmma_mm<int8_t, int32_t>, d_matrix_a_int8,
                           d_matrix_b_int8, d_matrix_c_int32, matrix_size_m,
                           matrix_size_n, matrix_size_k, is_A_transpose,
                           is_B_transpose, std::placeholders::_1)};
             float const latency_imma{measure_performance(
                 function_imma, stream, num_repeats, num_warmups)};
             std::cout << std::fixed << std::setprecision(3)
                       << "IMMA Latency: " << latency_imma << " ms" << std::endl;
         }
     }
 ​
     CHECK_CUDA_ERROR(cudaFree(d_matrix_a_int8));
     CHECK_CUDA_ERROR(cudaFree(d_matrix_b_int8));
     CHECK_CUDA_ERROR(cudaFree(d_matrix_c_int32));
 ​
     CHECK_CUDA_ERROR(cudaStreamDestroy(stream));
 }

🏵️
🪡
🪡
🥭
🥭
CUDA(C)磁态蒙特卡洛和传输矩阵多GPU并行计算分析
🏈指点迷津 | Brief
LogoCUDA(C++)电磁(斯特拉顿-楚矢量衍射积分)蒙特卡洛计算分析 | 亚图跨际亚图跨际 on Notion