英伟达
直播中

杨逊咏

7年用户 245经验值
私信 关注
[问答]

NVENC编码在虚拟机内部

嗨,
是否可以使用GRID在虚拟机内部使用NVENC API?
如果可以使用K1 / K2卡进行多少次编码?
它取决于所选的vGPU配置文件吗?
谢谢,
丹尼尔

以上来自于谷歌翻译


以下为原文

Hi,

Is it possible to use the NVENC API inside of a virtual machine using GRID?
If this is possible how many encodes can be preformed with K1/K2 cards?  
Does it depend on the selected vGPU profile?

Thanks,

Daniel

回帖(6)

王斌

2018-9-11 16:41:33
是的,它是可能的,它不受vGPU配置文件的限制。
流的数量取决于分辨率,帧速率等。您可以在此处找到卡规格
http://www.nvidia.com/object/grid-technology.html

以上来自于谷歌翻译


以下为原文

Yes it is possible and  it's not limited by the vGPU profile.

The number of streams is dependent on the resolution, frame rate etc. You can find card specifications here


http://www.nvidia.com/object/grid-technology.html
举报

沈家春

2018-9-11 16:52:53
你好Jason_Southern
在GRID 2.0发布后,这个问题再次成为现实。
我们为Linux vGPU vms购买了一些Tesla m60卡。
是否可以在带有vGPU的Linux虚拟机上使用NVENC?
目前我有与“无法创建CUDA上下文(101)”相关的错误。
这是否意味着NVENC for Linux需要CUDA支持?
是否可以在没有CUDA的情况下使用NVENC?
(例如使用opengl缓冲区?)
谢谢。
亚历克斯

以上来自于谷歌翻译


以下为原文

Hello Jason_Southern

This question is actual again after GRID 2.0 release. We bought some Tesla m60 cards for Linux vGPU vms.

Is it possible to use NVENC on Linux virtual machine with vGPU?
Currently I have error related to "Failed to create CUDA context (101)". Does it mean that NVENC for Linux require CUDA support? Is it possible to use NVENC without CUDA? (for example using opengl buffers?)

Thank you.

Alex
举报

胡小娟

2018-9-11 17:00:37
是。
您将需要使用8GB vGPU配置文件,这是目前唯一支持CUDA的配置文件。
或者编写代码以不使用CUDA缓冲区。
NVENC SDK是有关如何使用它的详细信息的最佳位置。
https://developer.nvidia.com/nvidia-video-codec-sdk

以上来自于谷歌翻译


以下为原文



Yes.



You will either need to use an 8GB vGPU profile, the only one which supports CUDA at present. Or write the code to not use CUDA buffers.

The NVENC SDK is the best place for details on how to use it.


https://developer.nvidia.com/nvidia-video-codec-sdk
举报

郝思雨

2018-9-11 17:08:48
杰森你好
我们不接受此选项。
仅仅为Linux vm使用整个GPU太昂贵了。
是的我知道。
让我解释一下与NVENC相关的问题:
首先,每个NVENC API调用都需要“void * encoder”对象。
该对象只能由nvEncOpenEncodeSessionEx函数创建。
但是nvEncOpenEncodeSessionEx函数需要为我提供“指向CUDA设备的指针”或“指向Direct X设备的指针”。
我的开发/目标平台是Linux。
微软尚未实现Direct X for Linux :)。
因此,使用NVENC for Linux只是一种选择 - 它是CUDA设备。
但是对于vGPU禁用CUDA。
如何使用Linux vGPU vm使用NVENC编码器?
可能还有其他方式吗?
是否可以在没有CUDA的情况下使用NVENC?
谢谢。
来自NVENC头文件的NvEncOpenEncodeSessionEx文档。
// NvEncOpenEncodeSessionEx
/ ** 
*  brief打开编码会话。 

*打开编码会话并返回指向编码器接口的指针 
*  p **编码器参数。
客户端应该通过调用开始编码过程 
*此API首先。 
*客户端必须在 p * device参数中传递指向IDirect3DDevice9 / CUDA接口的指针。 
*如果编码器会话的创建失败,则客户端必须调用:: NvEncDestroyEncoder API 
*退出前。 

*  param [in] openSessionExParams 
*指向:: NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS结构的指针。 
*  param [out]编码器 
*将会话指针编码到NvEncodeAPI接口。

以上来自于谷歌翻译


以下为原文

Hello Jason



This option is not acceptable for us. it is too expensive to use whole GPU just for Linux vm.




Yes, I know.
Let me explain my issue related to NVENC:

First, every NVENC API call require "void * encoder" object. This object can be created only by nvEncOpenEncodeSessionEx function.
But nvEncOpenEncodeSessionEx function require to provide me "pointer to CUDA device" or "pointer to Direct X device".
My develop/target platform is Linux. Microsoft is not implemented Direct X for Linux yet :).

So it is only one option to use NVENC for Linux - it is CUDA device. But CUDA is disabled for vGPU.

How can I use NVENC encoder using Linux vGPU vm? May be there any other way? Is it possible to use NVENC without CUDA?

Thank you.

NvEncOpenEncodeSessionEx documentation from NVENC header file.
// NvEncOpenEncodeSessionEx
/**
* brief Opens an encoding session.
*
* Opens an encoding session and returns a pointer to the encoder interface in
* the p **encoder parameter. The client should start encoding process by calling
* this API first.
* The client must pass a pointer to IDirect3DDevice9/CUDA interface in the p *device parameter.
* If the creation of encoder session fails, the client must call ::NvEncDestroyEncoder API
* before exiting.
*
* param [in] openSessionExParams
*    Pointer to a ::NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS structure.
* param [out] encoder
*    Encode Session pointer to the NvEncodeAPI interface.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分