Tag: 硬件

  • FFT算法中的Data Size问题:不是2的N次方怎么办?

    FFT算法中的Data Size问题:不是2的N次方怎么办?

    在计算机科学和信号处理领域,FFT(快速傅里叶变换)算法是一个常用的工具,用于将信号从时域转换为频域,或者在数字图像处理中进行频域分析。然而,FFT算法有一个特殊的要求,即数据的大小(data size)必须是2的N次方。这一要求在很多情况下并不总是满足的,那么如果数据大小不是2的N次方,应该怎么处理呢?本文将深入探讨这个问题,为你解答。

    FFT算法简介

    在理解如何处理非2的N次方数据大小之前,让我们先简要了解一下FFT算法的基本原理。FFT是一种高效的算法,用于将一个信号从时域变换到频域,它能够快速计算离散傅里叶变换(DFT)。DFT通常需要O(N^2)的计算时间,而FFT仅需要O(N log N)的计算时间,因此在实际应用中广泛使用。

    FFT算法的要求:数据大小必须是2的N次方

    在FFT算法中,最常见的要求之一是数据的大小必须是2的N次方,即N=1, 2, 4, 8, 16, …。这个要求的原因与FFT算法的设计有关,它依赖于分治法的思想,将一个大的DFT分解成多个小的DFT。当数据大小不是2的N次方时,这种分解会变得复杂,导致算法效率下降。

    处理非2的N次方数据大小的方法

    尽管FFT算法最常见的要求是数据大小必须是2的N次方,但实际应用中,我们经常会遇到数据大小不满足这一条件的情况。那么应该如何处理这种情况呢?

    方法一:补零(Zero Padding)

    补零是一种常见的方法,它可以将数据的大小扩展到2的N次方。具体步骤如下:

    1. 计算原始数据的大小,假设为M。
    2. 找到大于等于M的最小的2的N次方,假设为N_new,即N_new >= M,并且N_new是2的整数次幂。
    3. 在原始数据末尾补充N_new – M个零。
    4. 使用扩展后的数据进行FFT计算。

    补零的好处是它保留了原始数据的信息,但同时使数据大小满足FFT算法的要求。然而,需要注意的是,补零并不会改变原始数据的频谱特性,因此在某些情况下,可能会导致结果的误解。

    方法二:其他FFT算法

    除了常见的Cooley-Tukey FFT算法,还有一些专门用于处理非2的N次方数据大小的FFT算法,如Bluestein算法。这些算法在处理非2的N次方数据时效率更高,但通常会牺牲一些内存空间。

    结语

    FFT算法是一种强大的工具,用于信号处理和频谱分析。虽然它通常要求数据大小必须是2的N次方,但我们可以通过补零或使用其他专门的FFT算法来处理非2的N次方数据大小的情况。选择哪种方法取决于具体的应用需求和性能要求,但无论如何,FFT算法仍然是处理频域分析的重要工具之一。

  • 折腾家庭影音,停止折腾成熟方案大揭秘

    折腾家庭影音,停止折腾成熟方案大揭秘

    曾经,我是一个热衷于折腾家庭影音系统的垃圾佬。每天,我的房间里放着一个大机箱,发出绿光,声音也不小。我花了不少钱,折腾了很多方案,但终究被发现了。今天,我决定停止折腾那些花里胡哨的东西,分享一些成熟的家庭影音方案,而且这些方案都是免费的。有人或许会说,买成品不折腾,简单又方便,但我坚信,折腾能够让我达到成品70%左右的功能,甚至偶尔超出预期。而且,一个人的折腾意味着商家少卖一台成品,商家少赚钱,商家扛不住压力,最终导致降价,真香。

    同时,折腾还能为国家节能减排做出贡献,毕竟这么多不用的电子产品会变成电子垃圾,对环境造成污染。所以,让我们一起停止折腾,分享一些成熟的家庭影音方案,反正是免费的。

    方案一:Nascab

    首先,让我们介绍第一种方案,也是最简单的方案之一。你只需要下载一个Nascab或者部署一个Nascab系统,兜兜转转,免费的Winnas是真的香。这个方案入门非常简单,但略显局限,主要在于影音播放方面。

    方案二:Windows装Nastool

    第二种方案是在Windows上安装Nastool。这次真是一步到位,Winnas可以直接用Nastool。这个方案在影音方面表现非常优秀,尤其配合Windows上的Jellyfin,性能超强,适合日常家用。

    方案三:玩客云 + Windows-Nastool

    相当于第二个方案的变种,主要是将存储和信息处理进行分开操作。再配合串流提取存储的信息,这个方案功耗非常低,费用也不高,但玩客云自带的下载不够稳定,而且USB 2.0在传输大量数据时显得有些吃力。

    方案四:玩客云

    这个方案相对便宜,但稍微需要一些折腾。它的优点在于成本低,但不够方便,需要一些额外的配置。

    方案五:J1900黑群

    蜗牛星际J1900黑群晖可以用于人脸识别,价格也相对低廉。这个方案可以完成相册整理和网盘的功能,但在某些方面略显欠缺。

    方案六:弄个旧成品

    最后一个方案是使用旧的成品电脑。这个方案可以完成各种功能,性能够用,但毕竟是旧的设备,可能不太舒服。

    讲完了这些方案,接下来我将展示一些成品影音功能的演示。不管你选择哪种方案,影音显示以及各种信息都没有问题。你可以和机器人进行交互,自动下载并通知你。不过,我曾想把通知弄到微信公众号里,但需要花钱,太难了(部分功能实现较为困难)。

    最后,播放效果还不错,没有明显卡顿,当然,这并不是播放原盘。对于电视剧,至少可以达到高清。

    结语

    通过折腾家庭影音系统,我不仅享受了互联网提供的便利,还做出了一点点贡献,为减少电子垃圾和节能减排出了一份微薄的力量。无论你选择哪个方案,都要珍惜你的家庭影音系统,因为它们是你家庭娱乐的宝贵财富。

  • 如何选择适合你的NAS系统

    如何选择适合你的NAS系统

    在数字时代,数据存储变得越来越重要。无论是个人用户还是企业,我们都需要一个可靠的存储解决方案来管理和保护我们的数据。NAS(网络附加存储)系统是一种流行的选择,它可以提供高性能的数据存储和共享功能。但是,在众多的NAS系统中,如何选择适合自己的呢?今天,我将为你盘点一些常见的NAS系统,帮助你做出明智的选择。

    成品NAS vs. 自组NAS

    首先,让我们来看看成品NAS和自组NAS之间的区别。成品NAS通常是预装了专用NAS系统的设备,例如群晖的DSM、威联通的QTS、绿联的UGOS、极空间的ZOS等等。它们提供了一站式的解决方案,开箱即用,非常方便。

    而自组NAS则是你自己选择硬件并安装相应的NAS系统。这可以让你更加灵活地配置系统,但也需要更多的技术知识和时间来搭建和维护。

    常见的NAS系统

    1. 群晖DSM

    群晖的DSM可以说是NAS行业软件水平的标杆。它的优点包括系统的易用性和专业度平衡、较少的系统Bug以及丰富的套件功能。不过,黑群晖设备存在一些功能限制,而白群晖的硬件性价比较低。

    2. TrueNAS SCALE

    TrueNAS SCALE基于开源系统Debian,号称最受欢迎的开源NAS系统。它在界面、功能完善度和性能方面都表现出色。但需要注意的是,TrueNAS SCALE对内存要求较高,因此需要配置较多的内存和支持ECC的内存。

    3. OMV

    OMV也是基于Debian的开源NAS系统,但它的功能开发较少,界面相对简单。它更像是Debian的一个NAS看板。

    4. UnRAID

    UnRAID是一个收费系统,但在界面和功能上都表现不错。它也有开源版本,但功能有所限制。如果在功能接近的情况下,我更倾向于选择开源软件。

    5. iStoreOS

    iStoreOS基于Openwrt,通常被用作路由系统。但它也具备轻型NAS的文件管理功能,可以满足基本的文件管理需求。

    6. CasaOS

    CasaOS是一个基于Linux的轻型NAS看板,可以为Linux系统提供文件管理的WEB控制台以及一些常用应用的快捷安装。适合给简单的设备增加文件管理功能。

    7. Windows

    Windows作为NAS系统,要求相对较高的硬件配置,但它具有强大的应用生态和系统兼容性。如果你习惯使用Windows界面,它也是一个不错的选择。

    如何选择合适的NAS系统

    选择合适的NAS系统需要考虑以下几个因素:

    1. 硬件兼容性:确保选择的NAS系统在你的硬件上能够运行稳定。硬件不兼容可能会导致性能下降或功能受限。

    2. 功能需求:根据你的需求选择系统功能。如果只需要基本的文件存储、共享和备份功能,大多数系统都能够满足需求。

    3. 系统稳定性和易用性:当多个系统都能够满足你的需求时,优先选择稳定性和易用性较好的系统。

    总之,无论选择哪种NAS系统,核心目标都是为了数据服务。因此,在选择系统和折腾设备的同时,不要忽视了数据的重要性。

  • 如何充分发挥家庭服务器的功能:从存储到自动化

    如何充分发挥家庭服务器的功能:从存储到自动化

    家庭服务器是一项强大的工具,然而,许多人仅仅将其用于文件存储和备份。在本文中,我将分享如何充分发挥家庭服务器的功能,从存储到自动化,让它成为你数字生活的中心。

    服务器硬件

    虽然我不会详细介绍硬件的选择,但我想简要介绍一下我的家庭服务器硬件配置。我拥有两台服务器,分别是华擎 ASRock DeskMini X300 和威联通 QNAP TS-453Bmini。这两台服务器各自运行不同的操作系统,分别满足了我的需求。

    存储与同步

    家庭服务器首要的功能之一是存储与同步。我将我的同步/备份需求分为了七类:笔记、文献、密码、相册、截图、工作文件和中转站。为了满足这些需求,我部署了一系列服务,包括Nextcloud、Immich、Bitwarden、Resilio和MicroBin。这些服务让我能够轻松地管理和同步我的数据,无论是笔记、文献还是相册照片。

    RSS

    RSS订阅是获取新闻和博客文章的理想方式。我使用多种方式来获取RSS订阅源,包括网站提供、RSSHub、微信公众号和爬虫。这些订阅源可以通过Tiny Tiny RSS(TTRSS)阅读器进行管理,我将它们分类为学术、更新、消费、科技等大类。TTRSS帮助我过滤和标签化信息,让我能够更轻松地获取我感兴趣的内容。

    多媒体

    家庭服务器还可以用于管理多媒体内容,包括书籍、影视和音乐。我使用Calibre和Calibre Web来管理电子书,而Plex Server和Roon Server则用于管理影视和音乐。这些服务让我能够随时访问我的媒体库,无论是在家里还是外出。

    自动化与监控

    通过使用n8n和Node-RED,我建立了一套自动化和监控系统。这些系统可以与各种应用程序和智能设备互动,使我的家庭更加智能化。我接入了Linux定时任务、AI、微信机器人、微软ToDo、Outlook邮件、HomeAssistant等,使家居设备能够更加智能地响应我的需求。

    其他应用

    此外,我还部署了一些其他工具,如Grocy(家庭杂货和家务管理)、Apitable(多维表格)、ChatGPT Web(ChatGPT演示网页)、Code Server(VS Code浏览器版)、Gitea(轻量级DevOps平台)和Kms Server(微软KMS激活服务器)。这些工具扩展了我服务器的功能,让我能够更好地管理我的生活和工作。

    总结

    家庭服务器是一个多功能的工具,可以帮助你管理数据、获取新闻、享受媒体内容,甚至自动化家居。希望本文能够为你提供一些有关家庭服务器的应用思路,让你充分发挥其潜力。

  • 如何选择适合DIY的NAS方案:优缺点大汇总

    如何选择适合DIY的NAS方案:优缺点大汇总

    你是否对搭建自己的网络存储设备(NAS)方案感兴趣?在这个数字化时代,拥有一个高效的NAS系统可以极大地提高文件存储和共享的便捷性。本文将介绍不同的DIY NAS方案,包括安卓开发盒子、技得盒子、全智主板、RK3288主板、路由器和桌面X86盒子,并总结它们的优缺点,以帮助你选择适合自己的方案。

    选择NAS方案前的考虑

    在选择适合自己的NAS方案之前,有几个关键因素需要考虑:

    1. 性能需求:你的NAS将用于什么目的?是简单的文件存储还是需要处理大量数据的任务?性能需求会影响你选择的硬件和方案。

    2. 拓展性:是否需要将NAS系统扩展到更多硬盘或添加新功能?一些方案具有更好的拓展性。

    3. 功耗:如果你关心能源消耗,你可能希望选择一个功耗较低的方案,尤其是如果NAS将全天候运行。

    4. 预算:不同的硬件和方案价格不同,预算是一个重要考虑因素。

    5. 技术水平:你是否有足够的技术知识来搭建和维护NAS系统?一些方案需要更多的技术知识,而其他方案则较为简单。

    现在让我们来详细了解各种DIY NAS方案以及它们的优缺点。

    1. X86架构(桌面盒子)

    首先,我们来看X86架构的桌面盒子。这种方案使用标准的X86架构电脑,具有强大的性能和良好的可扩展性。然而,它的功耗较大,至少需要20W以上的待机功率。

    优点:

    • 性能强大,可处理高负载任务。
    • 可扩展性好,可以轻松添加更多硬盘。
    • 支持多种操作系统和NAS软件。

    缺点:

    • 功耗较高,运行成本较高。
    • 安装和配置需要一定的技术知识。
    • 不适合注重节能的用户。

    2. 路由器方案

    一些路由器也可以用作NAS方案,例如Netgear路由器。这种方案的性能较好,并且可以通过刷机等方式进行扩展。然而,需要注意硬盘的供电问题以防止损坏。

    优点:

    • 性能可接受,适合一般文件存储和共享。
    • 可以通过刷机等方式扩展功能。
    • 相对较低的功耗。

    缺点:

    • 硬盘供电需要小心处理,否则容易损坏。
    • 不适合处理大规模数据任务。

    3. ARM系统盒子

    ARM系统盒子是另一种选择,包括全智A53、RK3288和RK3566等处理器。它们的性能因型号而异,但一般来说,性能介于桌面盒子和电视盒子之间。这些盒子通常采用ARM处理器,功耗极低。

    优点:

    • 性能较好,适用于一般文件存储和共享。
    • 极低的功耗,非常节能。
    • 可以自定义操作系统和功能。

    缺点:

    • 需要一定的技术知识来配置和维护。
    • 不适合处理大规模数据任务。

    4. 电视盒子(安卓盒子)

    电视盒子通常采用低配置的ARM处理器,性能较低。这些盒子可以刷机以扩展功能,但需要具备一定的技术知识。

    优点:

    • 极低的功耗,非常节能。
    • 可以刷机以扩展功能。
    • 成本较低。

    缺点:

    • 性能非常有限,适用性有限。
    • 需要较强的技术水平来配置和维护。

    5. 总结

    不同的NAS方案具有各自的优缺点,选择适合自己的方案取决于你的需求和技术水平。如果你需要高性能和良好的可扩展性,X86架构的桌面盒子可能是最佳选择。如果你注重节能,ARM系统盒子或电视盒子可能更适合你。最重要的是,在选择之前要充分了解各个方案的特点和要求,以确保选择最适合自己的DIY NAS方案。

  • 如何应对GPU暴增的GenAI时代:AMD跨越英伟达的CUDA软件护城河

    如何应对GPU暴增的GenAI时代:AMD跨越英伟达的CUDA软件护城河

    在生成式AI(GenAI)时代,GPU的重要性不可忽视。英伟达和AMD作为GPU市场的两大巨头,正展开激烈的角逐。本文将探讨GenAI时代下GPU的关键作用,以及AMD如何挑战英伟达的CUDA软件护城河。

    背景

    当我们讨论GenAI时,GPU以及其性能和可访问性几乎成了不可或缺的一部分。英伟达一直是GPU的代名词,在国际GPU市场中占据主导地位。然而,近年来,AMD也在GPU领域崭露头角,逐渐蚕食英伟达的市场份额。但根据2022年GPU市场数据统计,英伟达的PC GPU出货量是AMD的近4.5倍,差距显而易见。

    英伟达之所以与生成式AI紧密相关,不仅仅是偶然。他们一直认识到,需要利用工具和应用来扩展市场。因此,英伟达降低了人们获取其硬件的门槛,如提供免费的CUDA工具包和cuDNN优化库等。

    此外,英伟达的软件工程师数量比硬件工程师还多,这点常常被人忽视。英伟达在软件方面构建了强大的护城河,虽然CUDA不是开源的,但它免费提供,并受到英伟达的严格控制。这为那些希望通过开发替代硬件来进入HPC和生成式AI市场的公司和用户带来了挑战。

    生成式AI的计算资源需求

    随着生成式AI模型数量不断增长,许多模型是开源的,需要大量资源来构建。然而,对生成式AI计算资源的需求也在不断增加,尤其是在微调和推理方面。这些任务需要GPU的加速,英伟达一直是主要供应商之一。但随着需求的增加,AMD也看到了机会。

    AMD挑战英伟达的关键

    对于那些不想使用英伟达硬件的公司,必须确保其GPU和加速器支持CUDA才能运行许多模型和工具。AMD通过HIP(类似于CUDA的转换工具)打破了这一限制,使其GPU成为更具竞争力的选择。

    PyTorch的崛起

    在生成式AI领域,支持CUDA的应用程序统治着GPU加速的世界。然而,PyTorch作为TensorFlow的强有力替代品,正逐渐改变这一格局。92%的可用模型都是PyTorch独有的,这表明PyTorch在生成式AI领域的影响力不断扩大。此外,PyTorch的底层对CUDA的依赖被有效地隔离,这意味着AMD GPU的用户也能够轻松运行PyTorch。

    AMD的硬件竞争力

    AMD推出的Instinct MI300A处理器将与英伟达的Grace-Hopper超级芯片展开竞争。MI300A处理器集成了Zen4核心和CDNA 3 GPU架构,为CPU和GPU核心提供了统一的内存访问,这将提高性能和能效。

    结语

    生成式AI市场的硬件竞争将在性能、可移植性和可用性等多个方面展开。AMD通过支持PyTorch和推出MI300A处理器已经跨越了英伟达的CUDA软件护城河。未来,硬件市场的竞争将会更加激烈,谁能占据上风,尚未可知。

  • 如何购买NFT:数字艺术的全新世界

    如何购买NFT:数字艺术的全新世界

    在一个星期五的晚上,你坐在家中的沙发上,滑动着你的智能手机屏幕。突然,一个炫目的数字艺术品吸引了你的目光。你被它的创意和美感深深吸引,心想:“我想拥有它!”但问题是,你不知道如何购买这个NFT,不过不用担心,本文将为你详细解释购买NFT的步骤。

    如何购买NFT:数字艺术的全新世界 如何购买NFT:数字艺术的全新世界

    什么是NFT?

    首先,让我们澄清一下,什么是NFT?NFT代表非同质化代币(Non-Fungible Token)。它是一种在区块链上存储的数字物品,可以代表几乎任何东西,从艺术品到会员资格,再到游戏内物品,都可以成为NFT的数字记录。

    NFT运行在区块链技术之上,这是一个分布式的数字公共记录系统。与传统中央服务器不同,区块链分布在点对点网络上,记录并保存历史。这使得它在验证真实性和数字所有权方面非常强大。

    当有人创建、转移、购买、出售或以其他方式处理NFT时,所有这些操作都会记录在区块链上。这就是实现身份验证的方式。这个记录作为永久的真实性声明,可以被任何人查看或访问,而不需要担心遗失或损坏,从而提供了更强大的真实性保障。

    购买NFT所需条件

    要购买NFT,首先你需要准备一个加密货币钱包。加密货币钱包是一个程序,用于存储你的NFT和加密货币。

    有托管(“托管式”)钱包和非托管钱包。托管钱包由第三方公司管理,而非托管钱包则不是。托管钱包就像把你的贵重物品存放在仓库中,而非托管钱包就像把它们放在家里的保险箱中。托管钱包因此需要更少的责任,但与第三方相关的风险也相对较高。非托管钱包为你提供了完全的控制权,但也需要更加小心谨慎,以免丢失你的私钥或不小心删除了有价值的东西。

    非托管钱包包括软件钱包和硬件钱包。

    • 软件钱包是一个程序,可以安装在你的计算机或浏览器上。这使得软件钱包成为快速、方便地购买、出售和转移NFT和加密货币的不错选择。

    • 硬件钱包是一种物理设备,你需要将其连接到计算机才能使用。由于它不总是连接到计算机或浏览器,因此它是长期安全存储的良好选择,但不太适用于快速或频繁的交易。

    不同的钱包支持不同的区块链,而不是所有钱包都支持NFT。以下是一些与OpenSea兼容的钱包:

    • Metamask(Ethereum、Polygon、Klaytn)
    • Coinbase Wallet(Ethereum、Polygon、Klaytn)

    NFT交易通常使用加密货币进行,尽管在OpenSea上有许多NFT可以使用信用卡或借记卡购买。

    如何购买NFT

    现在,让我们深入探讨如何购买NFT。购买NFT的主要方式有两种:在独立项目网站上购买或在NFT市场上购买。

    步骤1:决定在哪里购买NFT

    独立项目网站

    一些项目会在自己的网站上销售NFT。这通常是用于项目的“铸造”(NFT首次创建并写入区块链的时候)时,尽管有些项目有自己的独立市场,比如Coachella和Larva Labs。在大多数情况下,当你在项目网站上购买时,你仍然可以在其他NFT市场上转售你的NFT。

    NFT市场

    NFT市场有时会支持初次销售或铸造,但它们也是二级销售的主要驱动因素。不同的市场支持不同的区块链,有不同的费用结构,专注于不同类型的NFT,等等。

    步骤2:找到你喜欢的NFT

    一旦你决定在哪里购买NFT,下一步就是找到你喜欢的NFT。如果你想进入NFT市场但不知道如何找到自己喜欢的东西,下面是一些好的探索途径:

    • 关注你已经关注的创作者

    • 许多“传统”创作者也在NFT领域活跃,比如Snoop Dogg、Damien Hirst和Gary Vee。你可以查看一些你喜欢的创作者,看看他们是否有一些酷炫的NFT项目,比如SiA的互动音乐项目。

    • Twitter

    • 许多关于NFT的讨论发生在Twitter上,这使得它成为发

    现新NFT项目的好地方。你可以关注你感兴趣的账号、主题和话题。这不仅可以看到当前的趋势,还可以看到即将推出的项目。

    • 市场
    • NFT市场是发现NFT的另一个好地方。在OpenSea上,你可以查看“热门”榜单,按类别探索,等等。你还可以按价格等条件排序和筛选,从而更容易找到你感兴趣的项目。

    步骤3:购买你的NFT

    一旦你找到了一件喜欢的NFT,你如何实际购买它呢?你可以以固定价格购买NFT,也可以在拍卖中购买。

    立即购买

    以“立即购买”方式列出的NFT以一定的价格出售。它们可以在销售期内的任何时间购买,无需卖家的额外介入。这是最简单的方法,很像在其他电子商务网站上购买。

    拍卖

    当NFT拍卖时,潜在买家可以对物品竞价。NFT将归最高出价者所有。

    什么是英式拍卖?
    • 英式拍卖
    • 英式拍卖也称为“卖给最高出价者”拍卖。在英式拍卖中竞价类似于在固定价格列表上提出报价,因为卖家可以随时选择接受报价。如果卖家接受了报价,而不是让拍卖按照自己的条件完成,卖家将支付燃气费。

    请注意,出价必须比前一次报价高5%。此外,卖家可以随时取消拍卖,如果他们想结束拍卖,他们将产生燃气费。

    卖家还可以选择设置保留价格。这允许拍卖在没有买家达到所述价格的情况下结束。对于以太坊的拍卖,最低保留价格相当于1 ETH。如果拍卖没有达到1 ETH的价格,出价仍然可用,以便卖家可以接受它们。如果愿意,卖家可以选择接受低于保留价格的价格。

    在拍卖的最后10分钟内进行的任何出价都会将拍卖时间延长10分钟。如果竞标人取消了最高出价,这个动作也会自动将拍卖延长10分钟。你可能会想知道这些10分钟的延长是否会永无止境,但不用担心,它们不能。这可以将拍卖最长延长一周。

    提供

    你可以使用OpenSea为任何物品提供报价,即使它没有列出出售。如果你想以低于列出的销售价格购买,你也可以为列出的物品提供报价。

    步骤4:连接你的加密货币钱包

    一旦你选择了一个NFT并准备购买,接下来你需要连接你的加密货币钱包。如果你还没有连接和设置你的加密货币钱包,你将在这一步骤中被提示这么做。

    步骤5:选择你的支付方式

    接下来,你将被提示选择使用加密货币还是信用卡进行支付。在本例中,我们将使用信用卡。如果你想使用加密货币购买,你需要加载你的钱包以存放加密货币。

    步骤6:查看费用

    你可能会注意到,你的总费用比NFT的列出价格要高。这是由于网络(“燃气”)费和(如果你使用信用卡)处理费。燃气费在区块链上的所有交易中都会产生,金额根据各种因素而变化,比如在那一刻有多少人使用网络。OpenSea不会收取这些费用。

    步骤7:输入你的付款信息

    按照提示输入你的信息以完成购买。如果这是你首次使用信用卡购买(通过MoonPay),你可能需要验证你的身份。

    步骤8:购买完成!

    一旦你输入了所有必要的信息并点击了“支付”按钮,你的NFT购买将正式完成并被写入区块链。恭喜你购买了NFT!

    步骤9:查看你最新的NFT

    几秒钟后,你全新的NFT应该会显示在你的收藏中。你可以在OpenSea个人资料中看到你的新NFT!

    常见问题与解答

    问:我可以转售NFT吗?

    答:是的!你可以将你拥有的NFT列出出售,进行拍卖,或等待别人向你提供报价。想了解更多关于销售NFT的信息,请阅读相关文章。

    问:我为什么要购买NFT?

    答:购买NFT有很多原因,这取决于NFT的内容。你可能喜欢这件艺术品,想支持创作者,获得访问独家内容或活动的机会,或找到一个你认同的社区。想了解更多关于不同类型NFT的信息,请阅读相关文章。

    问:如何知道一个NFT是否真实?

    答:与任何购买一样,你希望确保你购买的东西是真实的。蓝色勾号表示创作者经OpenSea验证,或者已经有验证用户创建了项目(想了解更多,请参阅我们的NFT验证指南以及关于我们删除复制品的承诺的更多信息)。你还可以检查集合是否与官方Twitter账户链接在一起。记住黄金法则:如果看起来太好了,那可能确实如此!

    这就是购买NFT的基本步骤。现在你可以在数字艺术的世界中畅通无阻,欣赏和收藏你喜欢的作品。祝你好运!

  • 实现高效多GPU训练:DataParallel vs. DistributedDataParallel

    实现高效多GPU训练:DataParallel vs. DistributedDataParallel

    假设你是一位深度学习研究员,正在处理一个庞大的神经网络模型,以解决一个复杂的计算机视觉问题。你拥有多个GPU,并且想要充分利用它们来加速训练过程。在这个教程中,我们将探讨两种在PyTorch中实现多GPU训练的方法:nn.DataParallel和DistributedDataParallel,并帮助你选择适合你需求的方法。

    选择合适的多GPU训练方法

    在PyTorch中,有两种主要的多GPU训练方法:nn.DataParallel和DistributedDataParallel(以下简称DP和DDP)。它们都旨在允许你有效地使用多个GPU,但它们的工作原理和适用场景有所不同。让我们一起深入了解它们。

    1. nn.DataParallel (DP)

    参数说明

    • module:表示你定义的模型。
    • device_ids:表示你训练时使用的GPU设备。
    • output_device:这个参数表示输出结果的device,默认是在第一个GPU上,因此第一个GPU的显存占用会更多一些。

    DP的工作原理是将输入数据在多个GPU上并行处理,但是输出和损失的计算仍然在指定的output_device上进行,这导致了第一个GPU的负载明显高于其他GPU。

    优势

    • 实现简单,不涉及多进程。
    • 代码其他部分不需要做任何更改。

    弊端

    • 损失计算只在output_device上进行,导致负载不均衡。

    2. DistributedDataParallel (DDP)

    工作原理

    DDP是通过多进程实现的分布式数据并行,每个进程都独立地执行代码,拥有独立的GPU设备。它们会通过进程间通信来共享梯度,并最终独立地更新模型参数。

    数据并行

    DDP中,数据会被划分并加载到每个GPU上,每个GPU都独立地进行前向传播和反向传播。这使得数据并行训练成为可能,每个GPU都处理一部分数据。

    进程标识

    每个进程都通过local_rank变量来标识自己,其中local_rank为0的进程被视为主进程(master),其他进程为从属进程(slave)。

    随机种子设置

    为了保证模型初始化过程中生成的随机权重相同,需要设置随机种子,以确保每个进程上的模型参数初始化相同。

    模型保存

    在DDP中,只需要保存local_rank为0(主进程)的模型结构即可。

    如何选择?

    选择合适的多GPU训练方法取决于你的需求和硬件配置。下面是一些指导原则:

    • 如果你希望简化多GPU训练,不涉及多进程,并且可以容忍负载不均衡的情况,那么nn.DataParallel是一个不错的选择。

    • 如果你需要更高级的多GPU训练,希望利用多进程并实现数据并行,以更均匀地分配负载,那么DistributedDataParallel可能更适合你。

    请根据你的具体情况和需求选择适当的方法,以充分利用你的GPU资源来加速深度学习模型的训练。

    总结

    在本教程中,我们讨论了两种PyTorch中实现多GPU训练的方法:nn.DataParallel和DistributedDataParallel。它们各自具有优势和弊端,适用于不同的训练场景。选择合适的方法可以帮助你更有效地利用多个GPU,加速深度学习模型的训练过程。

    希望本教程能够帮助你理解这两种多GPU训练方法,并根据你的需求做出明智的选择。

  • 如何绕过虚拟机检测来进行恶意代码分析

    如何绕过虚拟机检测来进行恶意代码分析

    在进行恶意代码分析时,有时会遇到虚拟机检测,这会给分析工作带来一些挑战。虚拟机检测是一种防止恶意软件在虚拟化环境中运行的技术。然而,如果你是一个安全研究人员或想要深入了解恶意代码的开发者,你可能需要学习如何绕过这些检测方法,以便更好地分析恶意代码。在本教程中,我们将讨论一些常见的虚拟机检测技术以及如何绕过它们。

    开篇故事

    假设你是一位安全研究人员,最近对一种新发现的恶意软件进行分析。然而,你发现恶意软件在虚拟机中运行时会自动终止,这让你陷入了困境。你决定深入研究虚拟机检测技术,以便顺利完成你的分析工作。在接下来的教程中,我们将一起探讨如何绕过虚拟机检测,使你能够更好地理解和分析恶意代码。

    基于特征的检测

    虚拟机检测的一种常见方法是基于特征的检测,它通过检查虚拟机环境中的特定文件、目录和设备来确定虚拟机的存在。下面是一些常见的基于特征的检测方法以及如何绕过它们:

    1. 文件以及目录

    在虚拟机中,各种虚拟化软件会在操作系统中创建特定的文件和目录。这些文件和目录的存在可以被检测,从而确定虚拟机的存在。例如,VMware 虚拟机中可能会存在以下文件:

    • C:\Program Files\VMware\
    • C:\Windows\System32\vm3dc003.dll
    • C:\Windows\System32\vm3ddevapi64-debug.dll

    要绕过这种检测,你可以尝试修改虚拟机中的文件或目录,或者使用虚拟机管理工具隐藏它们。

    2. Devices

    虚拟机中的设备也可以被用来检测虚拟化环境。例如,VMware 虚拟机中存在名为 “\.\HGFS” 和 “\.\vmci” 的设备,用于主机和虚拟机之间的通信。你可以尝试修改这些设备的属性或关闭它们来绕过检测。

    3. MAC 地址

    虚拟机的网络适配器通常具有特定的 MAC 地址范围。例如,VMware 虚拟机的 MAC 地址通常以 “00:50:56” 或其他特定前缀开头。你可以尝试修改虚拟机的 MAC 地址来绕过检测。

    4. BIOS 字符串

    虚拟机中的 BIOS 字符串通常包含虚拟化软件的标识信息。例如,VMware 虚拟机的 BIOS 字符串可能包含 “VMware, Inc.”。你可以尝试修改虚拟机的 BIOS 字符串来绕过检测。

    5. 其他 Windows 注册表项

    在 Windows 注册表中,某些项可能包含与虚拟化环境相关的信息。例如,VMware 虚拟机可能会在注册表中留下包含 “VMWARE” 或 “VM” 字符串的信息。你可以修改这些注册表项来绕过检测。

    6. SMBIOS 字符串

    SMBIOS(System Management BIOS)中包含有关系统硬件的信息。虚拟机可能会在 SMBIOS 字符串中包含特定的标识信息。你可以尝试修改这些信息来绕过检测。

    7. ACPI 字符串

    ACPI(Advanced Configuration and Power Interface)也包含了与硬件相关的信息,虚拟机中可能包含特殊的字符串。你可以尝试修改这些字符串来绕过检测。

    8. 进程

    虚拟机中通常会运行一些特殊的后台进程,用于虚拟化环境的管理。例如,VMware 虚拟机中可能会存在进程如 “Vmtoolsd.exe” 和 “Vmwaretray.exe”。你可以尝试关闭或修改这些进程来绕过检测。

    9. 硬盘硬件ID以及名称

    一些恶意软件可能会检测硬盘的硬件ID或名称来确定虚拟机的存在。你可以尝试修改这些信息来绕过检测。

    10. 通过 WMI 获取硬件信息

    Windows Management Instrumentation(WMI)提供了一种标准化的接口,允许程序获取系统信息。你可以使用 WMI 来获取 BIOS 序列号、硬件信息和其他相关信息,并修改它们来绕过检测。

    基于指令的检测

    除了基于特征的检测,一些虚拟机检测方法还涉及到基于CPU指令的检测。这些方法通过检查虚拟机中执行的指令来确定虚拟机的存在。以下是一些常见的基于指令的检测方法以及如何绕过它们:

    1. IN 指令

    IN 指令用于从指定的I/O端口读取值到内存中。

    在虚拟机中,一些虚拟化软件允许这些指令在非特权用户模式下执行,而在物理机上会触发特权指令异常。你可以使用这一特性来检测虚拟机的存在。要绕过这种检测,你可以尝试关闭虚拟机中的相关功能或修改虚拟机的配置。

    2. CPUID 指令

    CPUID 指令用于获取有关CPU的信息,包括制造商ID和支持的指令集。一些虚拟机会在 CPUID 返回的信息中包含特定的标识信息。例如,VMware 虚拟机中的 CPUID 返回值可能包含 “VMwareVMware”。你可以修改虚拟机的 CPUID 返回值来绕过检测。

    3. RDTSC 指令

    RDTSC 指令用于获取时间戳计数器的值,通常用于测量指令执行的时间。在虚拟机中执行 CPUID 指令通常会触发 VM-Exit Event,导致进程从 guest 切换到 VMM。你可以使用 RDTSC 指令来计算这个开销,并检测虚拟机的存在。要绕过这种检测,你可以尝试修改虚拟机的配置以减少这种开销。

    总结

    虚拟机检测是一种常见的安全措施,用于防止恶意软件在虚拟化环境中运行。然而,对于安全研究人员和恶意代码分析者来说,了解如何绕过这些检测方法是非常重要的。在本教程中,我们讨论了一些常见的虚拟机检测技术以及如何绕过它们,以帮助你更好地进行恶意代码分析。

    请注意,绕过虚拟机检测可能涉及到修改虚拟机的配置或文件,因此请确保你在合法的环境中进行这些操作,以遵守法律和道德规范。

    希望本教程能够帮助你更好地理解虚拟机检测技术,并在恶意代码分析中取得更好的成果。

  • Oracle 免费主机使用攻略:如何最大化您的资源

    Oracle 免费主机使用攻略:如何最大化您的资源

    在某个闲暇的午后,我浏览着各种技术论坛,突然一个帖子吸引了我的注意。原来是一名新用户成功注册了Oracle账户,并且获得了免费的主机资源,但对于如何使用,却感到有些迷茫。这让我想起了自己初次接触云服务时的那种迷茫和好奇。于是,我决定写一篇文章,为所有新手提供一个详细的Oracle免费主机使用指南。

    1. Oracle免费主机额度是什么?

    首先,我们来了解一下Oracle提供的免费额度。

    每个租户每月可以免费获得 3,000 OCPU 小时和 18,000 GB 小时,用于创建使用 VM.Standard.A1.Flex shape 的 Ampere A1 Compute 实例(相当于4 OCPUs 和 24 GB 的内存)。此外,每个租户还可以免费获得两个 VM.Standard.E2.1.Micro 实例。

    这意味着,如果你选择配置为 1g cpu 和 1g 内存的实例,理论上,你每月可以使用 125 天的时间(3000/24=125)。换句话说,你可以同时开启 4 台这样的实例,并且不用支付任何费用。

    2. 如何创建 VM.Standard.E2.1.Micro 实例?

    有些用户反映,他们在尝试创建 VM.Standard.E2.1.Micro 实例时遇到了资源满的问题。这是因为该区域的资源已经被其他用户占用,你可以选择等待,或者更换到其他区域创建。

    3. 如何最大化使用免费额度?

    根据论坛中的经验分享,对于免费额度,ARM可以开启 4 个 CPU,24G 内存范围的实例。例如,你可以选择开启3个1cpu的实例和1个2cpu的实例。

    对于x86,你可以开启2个1C1G的实例。但要注意,ARM和x86的硬盘额度是共享的,总共有200G的硬盘额度可以使用。超过这个额度,你需要支付额外的费用。

    4. 注意事项

    1. 增加区域限制:如果你增加了区域,增加的区域只能开启 ARM 的机器,并且硬盘是需要额外付费的。例如,50G 的硬盘一个月需要支付 2.65 SGD。

    2. 注册开通:有些用户可能在注册开通时遇到问题,你可以在论坛中寻找相关的教程帮助。

    3. 信用卡问题:部分用户在使用信用卡进行验证时遇到了问题。请确保你的信用卡有足够的额度,并且没有被银行限制在线交易。

    总之,Oracle 的免费主机是一个很好的资源,但如何最大化地使用这些资源,还需要你不断地尝试和摸索。希望这篇文章能为你提供一些帮助。