chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Nuba擴(kuò)展在Python中編寫(xiě)光線跟蹤應(yīng)用程序

星星科技指導(dǎo)員 ? 來(lái)源:NVIDIA ? 作者:Michael Yh Wang ? 2022-06-21 15:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

光線跟蹤是一種渲染算法,它可以通過(guò)模擬光如何傳輸以及與不同材質(zhì)的交互來(lái)生成照片級(jí)真實(shí)感圖像。如今,它被廣泛應(yīng)用于游戲開(kāi)發(fā)、電影制作和物理模擬中,將圖像帶入生活。

然而,光線跟蹤算法計(jì)算量大,需要在 GPU 上進(jìn)行硬件加速才能實(shí)現(xiàn)實(shí)時(shí)性能。

為了利用光線跟蹤的硬件功能,人們發(fā)明了各種工具鏈和語(yǔ)言來(lái)滿足需要,例如 openGL 和著色語(yǔ)言。

通常,這些軟件工具鏈的構(gòu)建過(guò)程會(huì)給 Python 開(kāi)發(fā)人員帶來(lái)重大挑戰(zhàn)。為了減輕困難并為編寫(xiě)光線跟蹤內(nèi)核提供熟悉的環(huán)境, NVIDIA 為 PyOptiX 開(kāi)發(fā)了 Numba 擴(kuò)展。這種擴(kuò)展使圖形研究人員和應(yīng)用程序開(kāi)發(fā)人員能夠減少?gòu)臉?gòu)思到實(shí)現(xiàn)的時(shí)間,并縮短每次迭代的開(kāi)發(fā)周期。

在本文中,我將概述 NVIDIA 光線跟蹤引擎 PyOptiX ,并解釋 Python JIT 編譯器 Numba 如何加速 Python 代碼。最后,通過(guò)一個(gè)完整的光線跟蹤示例,我將引導(dǎo)您完成使用 PyOptiX 的 Nuba 擴(kuò)展的步驟,并用 Python 編寫(xiě)一個(gè)加速的光線跟蹤內(nèi)核。

什么是 NVIDIA OptiX 和 PyOptiX ?

NVIDIA RTX 技術(shù)使光線跟蹤成為許多現(xiàn)代渲染管道中的默認(rèn)渲染算法。由于對(duì)獨(dú)特外觀的需求是無(wú)限的,因此需要靈活定制渲染管道。

NVIDIA RTX 光線跟蹤管道是可定制的。通過(guò)配置光在各種材質(zhì)上的傳輸、反射和折射方式,可以在對(duì)象上實(shí)現(xiàn)獨(dú)特的外觀,例如有光澤、有光澤或半透明。通過(guò)配置光線的生成方式,可以相應(yīng)地更改視圖的視野和透視效果。

為了滿足這一需求, NVIDIA 開(kāi)發(fā)了 NVIDIA OptiX ,這是一種光線跟蹤引擎,可用于配置硬件加速的光線跟蹤管道。 PyOptiX 是 NVIDIA OptiX Python 接口。此接口為 Python 開(kāi)發(fā)人員提供了與使用 C ++編寫(xiě)的 NVIDIA OptiX 開(kāi)發(fā)人員相同的功能。

內(nèi)核函數(shù)

要自定義圖像方面,可以使用內(nèi)核函數(shù),也稱(chēng)為內(nèi)核方法或內(nèi)核。您可以將內(nèi)核視為一組將數(shù)據(jù)輸入轉(zhuǎn)換為所需形式的算法。本地 NVIDIA OptiX 開(kāi)發(fā)人員可以使用 CUDA 編寫(xiě)內(nèi)核。使用 Nuba 擴(kuò)展,您可以在 Python 中編寫(xiě)光線跟蹤內(nèi)核。

Numba 和 Numba 的性能更高。庫(kù)達(dá)大學(xué)

光線跟蹤是一種計(jì)算密集型算法。雖然理論上可以使用標(biāo)準(zhǔn) C Python 解釋器運(yùn)行光線跟蹤內(nèi)核,但渲染常規(guī)光線跟蹤圖像需要幾天的時(shí)間。此外, NVIDIA OptiX 要求內(nèi)核可以在 GPU 設(shè)備上運(yùn)行,以便與其余渲染管道集成。

使用 Numba ,一個(gè)實(shí)時(shí)的 GPU 函數(shù)編譯器,您可以使用 Python 硬件執(zhí)行并加速您的 Python 光線跟蹤內(nèi)核。 Numba 解析 Python 功能代碼并將其轉(zhuǎn)換為有效的機(jī)器代碼。在較高層次上,該過(guò)程分為七個(gè)步驟:

該函數(shù)的字節(jié)碼由字節(jié)碼編譯器生成。

分析了字節(jié)碼。生成控制流圖( CFG )和數(shù)據(jù)流圖( DFG )。

通過(guò)字節(jié)碼、 CFG 和 DFG ,可以生成 Numba 中間表示( IR )。

根據(jù)函數(shù)輸入的類(lèi)型,推斷每個(gè) IR 變量的類(lèi)型。

Nuba IR 被重寫(xiě),并得到 Python 特定的優(yōu)化。

Numba IR 降低到 LLVM IR ,并執(zhí)行更一般的優(yōu)化。

LLVM IR 由 LLVM 后端使用,并生成優(yōu)化的 GPU 機(jī)器代碼。

poYBAGKxbeyAeBLfAACSiNqpRA4493.png

圖 1 Numba 編譯管道的高級(jí)視圖

圖 1 顯示了前面提到的編譯管道的圖形概述。這篇關(guān)于 Numba 編譯器管道的快速教程只提供了對(duì) Numba 內(nèi)部架構(gòu)的一點(diǎn)了解。

下面的代碼顯示了一個(gè)示例 GPU 內(nèi)核,該內(nèi)核計(jì)算兩個(gè) 3 元素向量的點(diǎn)積。

@cuda.jit(device=True)
def dot(a, b): return a.x * b.x + a.y * b.y + a.z * b.z

因?yàn)?Numba 可以將任何 Python 函數(shù)轉(zhuǎn)換為本機(jī)代碼,所以在 Numba CUDA 內(nèi)核中, Python 用戶擁有同等的權(quán)限,就像他們?cè)谟帽緳C(jī) CUDA 編寫(xiě)內(nèi)核一樣。此代碼顯示可在設(shè)備上執(zhí)行的點(diǎn)產(chǎn)品。有關(guān)更多信息,請(qǐng)參閱 Numba Examples 。

介紹 PyOptiX 的 Nuba 擴(kuò)展

要自定義光線跟蹤管道的特定階段,必須將 Nuba 內(nèi)核轉(zhuǎn)換為 NVIDIA OptiX 引擎可以理解的內(nèi)容。 NVIDIA 為 PyOptiX 開(kāi)發(fā)了 Numba 擴(kuò)展以實(shí)現(xiàn)這一目標(biāo)。

擴(kuò)展包括自定義類(lèi)型定義和內(nèi)部函數(shù)降維。 NVIDIA OptiX 附帶一組內(nèi)部類(lèi)型:

OptixTraversableHandle

OptixVisibilityMask

SbtDataPointer

功能,如optix.Trace

為了讓 Nuba 對(duì)這些新類(lèi)型和方法執(zhí)行類(lèi)型推斷,您必須注冊(cè)這些類(lèi)型并在編譯用戶內(nèi)核之前提供這些方法的實(shí)現(xiàn)。目前, NVIDIA 正在擴(kuò)展支持的類(lèi)型和內(nèi)部函數(shù),以添加更多示例。

通過(guò)向 Numba 公開(kāi)這些類(lèi)型和內(nèi)部函數(shù),您現(xiàn)在可以編寫(xiě)內(nèi)核,它不僅針對(duì) GPU ,而且可以專(zhuān)門(mén)針對(duì) GPU 進(jìn)行光線跟蹤內(nèi)核。與 Numba CUDA 結(jié)合使用,您可以編寫(xiě)功率相等的光線跟蹤內(nèi)核,就像為 NVIDIA OptiX 編寫(xiě)本機(jī) CUDA 光線跟蹤內(nèi)核一樣。

在下一節(jié)中,我將介紹一個(gè)帶有 PyOptiX-Numba 擴(kuò)展的 Hello-World 示例。在此之前,讓我快速回顧一些光線跟蹤算法的基礎(chǔ)知識(shí)。

射線追蹤基礎(chǔ)

假設(shè)您使用相機(jī)拍攝圖像。場(chǎng)景中的光源發(fā)射光線,光線沿直線傳播。當(dāng)光線擊中物體時(shí),它會(huì)從表面反射,最終到達(dá)相機(jī)傳感器

從較高的層次來(lái)看,光線跟蹤算法將遍歷到達(dá)圖像平面的所有光線,以在場(chǎng)景中確定光線的相交位置和相交內(nèi)容。找到交點(diǎn)后,可以采用各種著色技術(shù)來(lái)確定交點(diǎn)的顏色。然而,也有一些射線不會(huì)擊中場(chǎng)景中的任何東西。在這種情況下,這些光線被視為“丟失”目標(biāo)。

使用 PyOptiX 的 Numba 擴(kuò)展對(duì)三角形進(jìn)行光線跟蹤的步驟

在下面的示例中,我將展示 PyOptiX 的 Numba 擴(kuò)展如何幫助您編寫(xiě)自定義內(nèi)核,以定義光線生成、光線命中和光線未命中時(shí)的光線行為。

場(chǎng)景設(shè)置

我將您看到的視圖建模為一個(gè)圖像平面,它通常略位于相機(jī)前面。相機(jī)被建模為三維空間中的一個(gè)點(diǎn)和一組相互正交的向量。

圖 2 三角形渲染示例的場(chǎng)景設(shè)置

照相機(jī)

相機(jī)建模為三維中的一個(gè)點(diǎn)。攝像機(jī)的三個(gè)矢量, U 、 V 和 W 、 用于顯示側(cè)面、向上和正面方向 。這唯一地確定了相機(jī)的位置和方向。

為了簡(jiǎn)化后續(xù)光線生成的計(jì)算, U 和 V 矢量不是單位矢量。相反,它們的長(zhǎng)度與圖像的縱橫比成比例匹配。最后, W 向量的長(zhǎng)度是相機(jī)和圖像平面之間的距離。

射線生成內(nèi)核

射線生成內(nèi)核是該算法的核心。射線原點(diǎn)和方向在此處生成,然后傳遞給跟蹤調(diào)用。它的強(qiáng)度從其他內(nèi)核中檢索出來(lái),并作為圖像數(shù)據(jù)寫(xiě)入。在本節(jié)中,我將討論在此內(nèi)核中生成光線的方法。

使用相機(jī)和圖像平面,可以生成光線。采用以圖像中心為原點(diǎn)的坐標(biāo)系約定。圖像像素中坐標(biāo)的符號(hào)表示其相對(duì)于原點(diǎn)的相對(duì)位置,其大小表示距離。使用此屬性,將相機(jī)的 U 和 V 矢量與像素位置的相應(yīng)元素相乘,然后將它們相加。結(jié)果是從圖像中心指向像素的向量。

最后,將該向量添加到 W 或前向量,這將生成一條光線,該光線從相機(jī)位置開(kāi)始,穿過(guò)圖像平面上的像素。圖 3 顯示了一條光線的分解,該光線起源于相機(jī),并穿過(guò)圖像平面中的點(diǎn)( x 、 y )。

圖 3 穿過(guò)像素的光線分解 ( x , y )

在代碼中,可以使用 optix 的兩個(gè)內(nèi)在函數(shù)optix.GetLaunchIndex和optix.GetLaunchDimensions檢索圖像平面的像素索引和圖像尺寸。接下來(lái),像素索引被歸一化為[-1.0 , 1.0]。下面的代碼示例顯示了 Nuba CUDA 內(nèi)核中的這種邏輯。

@cuda.jit(device=True, fast_math=True)
def computeRay(idx, dim): U = params.cam_u V = params.cam_v W = params.cam_w # Normalizing coordinates to [-1.0, 1.0] d = float32(2.0) * make_float2( float32(idx.x) / float32(dim.x), float32(idx.y) / float32(dim.y) ) - float32(1.0) origin = params.cam_eye direction = normalize(d.x * U + d.y * V + W) return origin, direction def __raygen__rg():
 # Look up your location within the launch grid
 idx = optix.GetLaunchIndex() dim = optix.GetLaunchDimensions()  # Map your launch idx to a screen location and create a ray from the camera # location through the screen ray_origin, ray_direction = computeRay(make_uint3(idx.x, idx.y, 0), dim)

此代碼示例顯示了computeRay的助手函數(shù),該函數(shù)計(jì)算光線的原點(diǎn)和方向向量。

接下來(lái),將生成的光線傳遞給內(nèi)部函數(shù)optix.Trace。這將初始化光線跟蹤算法。底層 optiX 引擎遍歷基本體,計(jì)算場(chǎng)景中的交點(diǎn),最后返回光線的強(qiáng)度。下面的代碼示例顯示了對(duì)optix.Trace的調(diào)用。

# In __raygen__rg
 payload_pack = optix.Trace( params.handle, ray_origin, ray_direction, float32(0.0), # Min intersection distance float32(1e16), # Max intersection distance float32(0.0), # rayTime -- used for motion blur OptixVisibilityMask(255),  # Specify always visible uint32(OPTIX_RAY_FLAG_NONE), uint32(0), # SBT offset -- Refer to OptiX Manual for SBT uint32(1),  # SBT stride -- Refer to OptiX Manual for SBT uint32(0),  # missSBTIndex -- Refer to OptiX Manual for SBT )

射線命中內(nèi)核

在光線命中內(nèi)核中,您可以編寫(xiě)代碼來(lái)確定光線的每個(gè)通道的強(qiáng)度。如果三角形頂點(diǎn)是使用 NVIDIA OptiX 內(nèi)部數(shù)據(jù)結(jié)構(gòu)設(shè)置的,則可以調(diào)用 NVIDIA OptiX 內(nèi)在optix.GetTriangleBarycentrics來(lái)檢索命中點(diǎn)的重心坐標(biāo)。

要使顏色更有趣,請(qǐng)將此坐標(biāo)插入該像素的顏色中。顏色的藍(lán)色通道設(shè)置為 1.0 。光線的強(qiáng)度應(yīng)傳遞給光線生成內(nèi)核進(jìn)行進(jìn)一步的后處理,并寫(xiě)入圖像。

NVIDIA OptiX 通過(guò)有效負(fù)載寄存器在內(nèi)核之間共享數(shù)據(jù)。使用setPayload功能將有效負(fù)載寄存器的值設(shè)置為光線強(qiáng)度。默認(rèn)情況下,有效負(fù)載寄存器是整數(shù)類(lèi)型。使用 CUDA 內(nèi)部函數(shù)float_as_int將浮點(diǎn)值解釋為整數(shù),而不更改位。

@cuda.jit(device=True, fast_math=True)
def setPayload(p): optix.SetPayload_0(float_as_int(p.x)) optix.SetPayload_1(float_as_int(p.y)) optix.SetPayload_2(float_as_int(p.z)) def __closesthit__ch():  # When a built-in triangle intersection is used, a number of fundamental # attributes are provided by the NVIDIA OptiX API, including barycentric coordinates. barycentrics = optix.GetTriangleBarycentrics() setPayload(make_float3(barycentrics, float32(1.0)))

射線未命中內(nèi)核

“光線未命中”內(nèi)核設(shè)置未命中場(chǎng)景中任何對(duì)象的光線的顏色。在這里,您可以將它們?cè)O(shè)置為背景色。

bg_color是在設(shè)置渲染管道期間在著色器綁定表中指定的一些數(shù)據(jù)?,F(xiàn)在,請(qǐng)注意,這是一組硬編碼的浮點(diǎn)數(shù),表示場(chǎng)景的背景色。

def __miss__ms(): miss_data = MissDataStruct(optix.GetSbtDataPointer()) setPayload(miss_data.bg_color)

將強(qiáng)度轉(zhuǎn)換為顏色并寫(xiě)入圖像

現(xiàn)在,您已經(jīng)為所有光線定義了顏色。顏色在光線生成內(nèi)核中作為payload_pack數(shù)據(jù)結(jié)構(gòu)從optix.trace調(diào)用中檢索。還記得在 ray hit 和 ray miss 內(nèi)核中,必須將浮點(diǎn)數(shù)的位解釋為整數(shù)嗎?使用int_as_float功能還原此步驟。

現(xiàn)在,您可以直接將這些值寫(xiě)入圖像,它仍然看起來(lái)很棒。再多做一步,對(duì)原始像素值執(zhí)行后處理步驟,這對(duì)于更復(fù)雜場(chǎng)景中的出色圖像非常重要。

您檢索到的值只是光線的原始強(qiáng)度,它與光線攜帶的能量級(jí)別成線性比例。雖然這符合你的物理世界模型,但人眼不會(huì)以線性方式對(duì)光刺激作出反應(yīng)。相反,它遵循輸入的映射,通過(guò)冪函數(shù)進(jìn)行響應(yīng)。

為此,對(duì)強(qiáng)度進(jìn)行 gamma correction 測(cè)試。此外,大多數(shù)查看此圖像結(jié)果的用戶都在觀看具有 sRGB 顏色空間的監(jiān)視器。假設(shè)光線跟蹤世界中的值位于 CIE-XYZ color space 中,并應(yīng)用顏色空間轉(zhuǎn)換。最后,將顏色值量化為 8 位無(wú)符號(hào)整數(shù)。

下面的代碼示例顯示了用于后期處理顏色強(qiáng)度并將其寫(xiě)入光線生成內(nèi)核中的像素陣列的輔助函數(shù)。

@cuda.jit(device=True, fast_math=True)
def toSRGB(c):
 # Use float32 for constants
 invGamma = float32(1.0) / float32(2.4) powed = make_float3( fast_powf(c.x, invGamma), fast_powf(c.y, invGamma), fast_powf(c.z, invGamma), ) return make_float3( float32(12.92) * c.x if c.x < float32(0.0031308) else float32(1.055) * powed.x - float32(0.055), float32(12.92) * c.y if c.y < float32(0.0031308) else float32(1.055) * powed.y - float32(0.055), float32(12.92) * c.z if c.z < float32(0.0031308) else float32(1.055) * powed.z - float32(0.055), ) @cuda.jit(device=True, fast_math=True)
def make_color(c): srgb = toSRGB(clamp(c, float32(0.0), float32(1.0))) return make_uchar4( quantizeUnsigned8Bits(srgb.x), quantizeUnsigned8Bits(srgb.y), quantizeUnsigned8Bits(srgb.z), uint8(255), ) # In __raygen__rg result = make_float3( int_as_float(payload_pack.p0), int_as_float(payload_pack.p1), int_as_float(payload_pack.p2), )  # Record results in your output raster params.image[idx.y * params.image_width + idx.x] = make_color(result)

總結(jié)

PyOptiX 允許您使用 Python 設(shè)置光線跟蹤渲染管道。 Nuba 將 Python 函數(shù)轉(zhuǎn)換為與渲染管道兼容的設(shè)備代碼。 NVIDIA 將這兩個(gè)庫(kù)組合到 PyOptiX 的 Nuba 擴(kuò)展中,使您能夠在完整的 Python 環(huán)境中編寫(xiě)加速光線跟蹤應(yīng)用程序。

結(jié)合 Python 已經(jīng)擁有的豐富而活躍的環(huán)境,您現(xiàn)在可以解鎖構(gòu)建光線跟蹤應(yīng)用程序的真正能力,硬件加速。 下載演示 親自體驗(yàn) PyOptiX 的 Numba 擴(kuò)展!

下一步是什么?

PyOptiX Numba 擴(kuò)展正處于開(kāi)發(fā)階段, NVIDIA 正在努力添加更多示例,并使 NVIDIA OptiX 原語(yǔ)的鍵入更加靈活和 Pythonic 。

關(guān)于作者

Michael Yh Wang 是 NVIDIA Rapids 的軟件工程師。目前,他將自己的工程技能貢獻(xiàn)給了 cuDF 、 cuSpatial 和 Numba 。在加入 NVIDIA 之前,他獲得了耶魯大學(xué)的理學(xué)碩士學(xué)位。他早期的經(jīng)驗(yàn)包括在一個(gè)獨(dú)立電影項(xiàng)目中擔(dān)任視覺(jué)效果主管,并在 WAIC 2020 hackathon 競(jìng)賽中獲得第一名。 Michael 對(duì)軟件工程、計(jì)算機(jī)圖形算法和編譯器技術(shù)有濃厚的興趣。他相信,在未來(lái),通過(guò)編譯器和語(yǔ)言創(chuàng)新,加速計(jì)算將更容易為公眾所接受。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5444

    瀏覽量

    108544
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5050

    瀏覽量

    133997
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1665

    瀏覽量

    50926
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基礎(chǔ)篇3:掌握Python的條件語(yǔ)句與循環(huán)

    通過(guò)學(xué)習(xí)條件語(yǔ)句和循環(huán),您能夠編寫(xiě)出能夠根據(jù)不同情況和條件作出決策的Python程序。這些結(jié)構(gòu)在編程中非常常見(jiàn),對(duì)于提高編程能力和構(gòu)建復(fù)雜程序至關(guān)重要。
    發(fā)表于 07-03 16:13

    使用Percepio View免費(fèi)跟蹤工具分析Zephyr應(yīng)用

    Percepio View免費(fèi)跟蹤工具現(xiàn)在可以針對(duì)Zephyr應(yīng)用程序進(jìn)行跟蹤和可視化分析了。Percepio View可以幫助開(kāi)發(fā)人員理解和調(diào)試Zephyr的固定優(yōu)先級(jí)的多線程行為
    的頭像 發(fā)表于 05-27 15:08 ?471次閱讀
    使用Percepio View免費(fèi)<b class='flag-5'>跟蹤</b>工具分析Zephyr應(yīng)用

    使用C++的CyAPI編寫(xiě)應(yīng)用程序上遇到了問(wèn)題,求解決

    使用 C++ 的 CyAPI 編寫(xiě)應(yīng)用程序上遇到了問(wèn)題。 我將 XferData() 方法與其他所有端點(diǎn)類(lèi)型一起使用,沒(méi)有遇到任何問(wèn)題。 但是,將其與 Endpoint0 一起
    發(fā)表于 05-13 06:11

    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python程序?

    在這篇文章,我將為你簡(jiǎn)要介紹Python程序是什么、Python程序可以用來(lái)做什么,以及如何在RaspberryPi上
    的頭像 發(fā)表于 03-25 09:27 ?1304次閱讀
    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上<b class='flag-5'>編寫(xiě)</b>和運(yùn)行<b class='flag-5'>Python</b><b class='flag-5'>程序</b>?

    MCP:連接AI與應(yīng)用程序的開(kāi)放標(biāo)準(zhǔn)!

    。 第二種方式,開(kāi)發(fā)者需要為AI大模型編寫(xiě)與具體應(yīng)用程序協(xié)作的訪問(wèn)代碼,例如,開(kāi)發(fā)者希望DeepSeek-R1與Gmail協(xié)作,就需要手動(dòng)編寫(xiě)
    的頭像 發(fā)表于 03-21 18:21 ?1510次閱讀
    MCP:連接AI與<b class='flag-5'>應(yīng)用程序</b>的開(kāi)放標(biāo)準(zhǔn)!

    Python嵌入式系統(tǒng)的應(yīng)用場(chǎng)景

    你想把你的職業(yè)生涯提升到一個(gè)新的水平?Python嵌入式系統(tǒng)中正在成為一股不可缺少的新力量。盡管傳統(tǒng)上嵌入式開(kāi)發(fā)更多地依賴于C和C++語(yǔ)言,Python的優(yōu)勢(shì)在于其簡(jiǎn)潔的語(yǔ)法、豐富的庫(kù)和快速的開(kāi)發(fā)周期,這使得它在某些嵌入式場(chǎng)景
    的頭像 發(fā)表于 03-19 14:10 ?1025次閱讀

    如何部署OpenVINO?工具套件應(yīng)用程序?

    編寫(xiě)代碼并測(cè)試 OpenVINO? 工具套件應(yīng)用程序后,必須將應(yīng)用程序安裝或部署到生產(chǎn)環(huán)境的目標(biāo)設(shè)備。 OpenVINO?部署管理器指南包含有關(guān)如何輕松使用部署管理器將
    發(fā)表于 03-06 08:23

    OpenVINO?運(yùn)行應(yīng)用程序失敗怎么解決?

    嘗試 OpenVINO? 運(yùn)行我的推理應(yīng)用程序失敗,并出現(xiàn)以下錯(cuò)誤: RuntimeError: Check \'false\' failed at src/core/src/runtime/ov_tensor.cpp:67
    發(fā)表于 03-05 10:29

    是否可以使用OpenVINO?部署管理器部署機(jī)器上運(yùn)行Python應(yīng)用程序?

    使用 OpenVINO?部署管理器創(chuàng)建運(yùn)行時(shí)軟件包。 將運(yùn)行時(shí)包轉(zhuǎn)移到部署機(jī)器。 無(wú)法確定是否可以部署機(jī)器上運(yùn)行 Python 應(yīng)用程序,而無(wú)需安裝OpenVINO? Toolk
    發(fā)表于 03-05 08:16

    ANACONDA——關(guān)于發(fā)布數(shù)據(jù)應(yīng)用程序的新簡(jiǎn)單方法

    我們推出了一款用于發(fā)布數(shù)據(jù)應(yīng)用程序的開(kāi)創(chuàng)性解決方案:具有 Panel 應(yīng)用程序部署功能的 Anaconda Cloud Notebooks。Panel 是一種開(kāi)源 Python 工具,現(xiàn)在
    的頭像 發(fā)表于 01-17 11:39 ?566次閱讀
    ANACONDA——關(guān)于發(fā)布數(shù)據(jù)<b class='flag-5'>應(yīng)用程序</b>的新簡(jiǎn)單方法

    TMetric:一鍵式Axosoft時(shí)間跟蹤

    將計(jì)時(shí)器按鈕添加到 Axosoft 工作項(xiàng) 完成這三個(gè)簡(jiǎn)單的步驟以 Axosoft 啟用時(shí)間跟蹤設(shè)置時(shí)間不超過(guò) 3 分鐘。 注冊(cè) TMetric 具有高級(jí)計(jì)費(fèi)和報(bào)告功能的時(shí)間跟蹤
    的頭像 發(fā)表于 01-07 11:32 ?491次閱讀
    TMetric:一鍵式Axosoft時(shí)間<b class='flag-5'>跟蹤</b>

    TMETRIC:簡(jiǎn)單步驟將工作區(qū)連接到時(shí)間跟蹤應(yīng)用程序

    將計(jì)時(shí)器按鈕添加到組合門(mén)票 完成這三個(gè)簡(jiǎn)單步驟以 Assembla 啟用時(shí)間跟蹤。設(shè)置時(shí)間不超過(guò) 3 分鐘。 注冊(cè) TMetric 具有高級(jí)計(jì)費(fèi)和報(bào)告功能的時(shí)間跟蹤
    的頭像 發(fā)表于 01-07 09:23 ?573次閱讀
    TMETRIC:簡(jiǎn)單步驟將工作區(qū)連接到時(shí)間<b class='flag-5'>跟蹤</b><b class='flag-5'>應(yīng)用程序</b>

    Todoist一鍵時(shí)間跟蹤

    的步驟,Todoist啟用時(shí)間跟蹤。 設(shè)置時(shí)間不超過(guò) 3 分鐘。 添加注冊(cè) TMetric 具有高級(jí)計(jì)費(fèi)和報(bào)告功能的時(shí)間跟蹤應(yīng)用程序
    的頭像 發(fā)表于 01-03 11:08 ?664次閱讀
    Todoist一鍵時(shí)間<b class='flag-5'>跟蹤</b>

    android手機(jī)上emulate應(yīng)用程序的方法

    。以下是一些Android手機(jī)上模擬應(yīng)用程序的具體方法和步驟: 一、使用Android Studio的模擬器 安裝Android Studio : 首先,你需要在電腦上安裝Android
    的頭像 發(fā)表于 12-05 15:33 ?1875次閱讀

    使用OpenVINO? ElectronJS創(chuàng)建桌面應(yīng)用程序

    ? 最近,我完成了一個(gè) demo 演示,展示了 OpenVINO Node.js 框架的強(qiáng)大功能。得益于與 Electron.js 的集成,該演示不僅能夠高效地執(zhí)行神經(jīng)網(wǎng)絡(luò)推理,還提供了交互式
    的頭像 發(fā)表于 11-25 11:35 ?797次閱讀
    使用OpenVINO? ElectronJS<b class='flag-5'>中</b>創(chuàng)建桌面<b class='flag-5'>應(yīng)用程序</b>