 안녕하세요, 여러분. 안녕하세요, 저는 지혜철입니다. 여러분께 감사드립니다. 오늘의 공연에 참여한 모든 분들께 감사드립니다. 저는 삼성 SDS입니다. 저는 삼성 SDS입니다. 저는 그 부분에 참여를 하자면, 포장한 삼성 플랫폼은 삼성 SDS에서 배터리 요구를 예상하여 작년에 여러 부분에서 수작, 소설, 그러한 사회가 필요하다고 컴퓨터 클라우드는 직접 서비스에 사용할 수 있습니다. 이 서비스에 high-quality availability and stability가 있습니다. 아까 말씀드렸듯이, 제 팀은 QFLOW 서비스에서 이 스피를 개발한 것입니다. 이 서비스에서 개발한 기술 플랫폼을 통해 많은 것을 배우고 있습니다. 제 생각은 AI와 ML Ops의 공간을 제공할 수 있는 것입니다. 가장 큰 공간을 배우는 것입니다. 그 공간을 제공할 수 있는 것입니다. 이 공간의 공간의 공간을 제공할 수 있는 것입니다. 네, 먼저 그는 QFTLV의 안녕하세요. QFTLV는 QVLNIST의 대단한 기술 기술 기술 기술 기술 기술 기술 기술을 제공하는 기술 기술과의 마신-라니스 기술을 사용합니다. 이 기술 기술에 대한 기술 기술에 대한 기술 기술을 연구하고 있는 기술 기술의 기술을 제공할 수 있습니다. QFTLV의 기술 기술을 여러 가지 기술, 기술업자들은 기술자들과 전당 많은 배신 Southeast Asia의 분석금고를 통해 아니지 않으며 신경을 이동한 대중 유지서와па왕이 GPU 액코시스템, 또한 GPU utilisation rate가 매우 적용되어 있습니다. 그래서 2가지 GPU 기술에 대해서도 P.O.C를 제공했습니다. 1. multi-instance GPU에 제공되어 액비리아 암필이 있습니다. 2. GPU DirectRDME에 제공되어 P.O.C를 제공합니다. 오늘 모두가 P.O.C를 제공할 것입니다. 일단은 MIG의 POC입니다. 이 두 태벌을 비교할 수 있습니다. GPU의 스페셜을 비교할 수 있습니다. 데이터 센터와 데이터 센터에서 사용할 수 있습니다. 두 태벌의 GPU, 데이터 센터와 서버스에서 사용할 수 있습니다. AI와 HPC의 큰 기술과 수준을 사용할 수 있습니다. 큰 기술과 수준을 사용할 수 있습니다. 데이터 센터의 GPU의 스페셜을 비교할 수 있습니다. 4G, 8GB minimum의 memory size입니다. 데이터 센터의 GPU의 1.5G, 1TB의 GPU의 데이터 센터에서 사용할 수 있습니다. GPU의 필요한 기술과 수준을 사용할 수 있습니다. 다른 단계에서 GPU의 1개의 데이터 센터에서 사용할 수 있습니다. 데이터 센터의 GPU의 기술과 수준을 사용할 수 있습니다. GPU의 1개의 1개의 데이터 센터에서 사용할 수 있습니다. 1개의 데이터 센터에서 사용할 수 있습니다. GPU의 fetishon GPU의 데이터를 사용할 수 있습니다. 데이터 센터와 DOC의 high bandwidth memory, cache, and comparing core가 있습니다. various tasks like different AI inference or Jupyter jobs or training jobs is executed in the same GPU without MIG. 그리고 다른 방식들이 이 방식을 관련된 다른 방식을 제공하고 있습니다. 다만, MIG에 대해 모든 방식을 simultaneously 제공하고, 다른 방식을 제공하고,もし 기능의 자료 서비스의 관리에 의해 공급과 함께 많은 방식을 제공하고, 저희에 대해서는 저희에 대해서는 저희는 데이터 센터에 대해서는 저희는 기능을 제공할 수 있을 것이라고 생각합니다. 그래서 기능을 제공할 수 있는 기능을 제공할 수 있습니다. 퀴벳플로우는 오프라이딩 시스템 레이어로 간단히 제작되었습니다. 매우 매우, 퀴벳플로우와 퀴벳플로우의 유지적인 시스템과 퀴벳플로우의 유지적인 시스템을 제작했습니다. 퀴벳플로우는 오프라이딩 시스템과 퀴벳플로우의 유지적인 시스템을 제작했지만, 어떻게 будет runtime 날리는 동의했습니다. 어떻게 할까, 퀴벳플로우의 유지적인 시스템과 퀴벳플로우의 유지적인 시스템을 제작했습니다. QbufferLayer를 확인할 수 있으며, 아주 잘 보였습니다. 이 스크린은 QbufferFlow에 제작되었는데요. 왼쪽의 스크린은 QbufferFlow에 제작되었는데요. 왼쪽의 스크린은 QbufferFlow에 제작되었는데요. 4Gb 사이즈 4Gb 사이즈 100GPU와 1mi의 device of GI-ID9가 제작되었습니다. 왼쪽의 스크린은 QbufferFlow에 제작되었는데요. 1m의 100GPU가 7mi의 devices가 제작되었습니다. 이 process는 GI-ID9가 제작되었습니다. 이 process는 QbufferFlow에 제작되었습니다. QbufferFlow에 제작되었습니다. MIs의 devices에 잘 제작되었습니다. 하지만 이 테스트는 마이너에 제작되었습니다. 제작되었을 때 MIs의 devices는 오픈스토리 QbufferFlow에 제작되었습니다. 자, 이제 더 가까이 보겠습니다. 왼쪽의 스크린은 오픈스토리 QbufferFlow에 제작되었습니다. QbufferFlow에 제작되eron가 제작됩니다. QbufferFlow에 ideal reception of the individual QbufferFlow에 제작돼서 QbufferFlow에 제작되었습니다. 밸런스와 퀴벌레이스를 연구하고 있습니다. 그래서 이 부분을 제공하는 이유가 있었습니다. 오른쪽은 스크린을 제공하는 스크린 프로 서비스의 노트북입니다. As you can see, We can select the GPU type type. As of now, we can see 10GB of MIS device and GPU type support. It is set for users to select instantly on the dashboard without updating number 5. And it will be appreciated if such MIS device function is applied to open source community later. Then, let's move on. As you can see, QFL service for utilizing resource, including MIS device, it can be checked on the dashboard. MIS device information of the node configured in the cluster can be checked. And the resource use amount can be reported. And the allocation of resource quota can be restricted. And I think it's going to be very useful. Then, let's move on to the next lesson that we learned. We wanted to check whether the distributed training was visible on MIS device. Although MIS technology is not suitable for large volume tasks like distributed training, but we just wanted to check its possibility. For those of you who are not familiar with the concept of distributed training, it involves one training job that uses numerous GPUs to execute training. It can be executed in one node or multi nodes like the one in the picture. We are going to test this DDP job in PyTorch using a standing technology called CUDA specialized for a media GPU. For task execution, device is allocated using CUDA command in the device. Let's look at a specific example. On the left is a distributed training YAML allocating four GPUs to one path and running total of two paths. As you can see on the right, by executing it, all the processes are allocated in one node. And if we look at the executed law, we can see that CUDA device has been allocated properly and the task has been completed. This is the DDP that generally takes place in GPU. Then let's allocate the same task with MI's device only. It is the distributed training YAML that runs total of two paths by allocating two MI's devices for each path. As you can see on the right, an error occurs in runtime of CUDA device detection. Then does this mean that distributed training is not visible on MIG? For accurate verification, we allocated one MI's device for each path for the same task. As you can see on the right now, MI's device was allocated properly and distributed training was executed without any issue. We found out that distributed training is feasible with MI's device. But the task is executable when only one device is allocated for each path. Then lastly, let's take a look at the performance. To sum up, for light models, it was three to seven times more efficient on MI's device. We executed model training in both bare metal and virtual machine environment. We compared execution time for the method that executes the same model consecutively seven times in one GPU and the method that executes simultaneously on seven MI's devices. We saw three times better performance for heavier models like RNN and five to seven times better performance on lighter models like CNN and Resonate 18. We found this valuable enough to apply to our ASUS PQP flow service. Furthermore, we found some points to consider for Kubernetes world testing. If you are interested in it, then you can take a look at the document which we have written in ASUS PQP technology guide. So far, we went over the POC related to MI's technology with which GPU is divided into seven instances at max and efficient to use of GPU is possible even for only one unit of GPU for numerous users or on QDA applications by using MIG. However, it is suitable for data sciences model development task or inference task and not for large scale task like distributed training. And it allows more efficient use of GPU resources if it's right way. Then let's move on to the second case study. I'd like to introduce POC related to GPU Direct RDME technology. As the size of the model gets bigger and the amount of the data is increased to enhance the accuracy of deep learning, we need countless computers and efficient distributed processing. I'm going to explain GPU Direct RDME technology for working nodes of GPU distributed training and system architecture as well as some examples and share the performance verification result. First of all, GPU Direct RDME is a function that allows direct access to GPU memory between GPU communication between remote nodes and through the network interface data IO between GPU memories is processed without involving CPU. To understand it better, let's take a look at four cases. The two diagrams at the top show the different GPUs communicating within a single node and the other two at the bottom show the communication between GPUs of the remote node. First, let's take a look at the communication of GPU within a single node. Without GPU Direct to peer to peer, the host CPU must transfer the data from the GPU memory to the host memory and then from the host memory to the other second GPUs memory. But with GPU Direct to peer to peer, the data can be transferred directly from GPU memory to the other GPUs memory. It works similarly for internal communication as well. Without GPU Direct RDME, the data must be copied from the GPU memory to the host memory and then from the host memory to a remote host. But with GPU Direct RDME, the data is transferred directly from the GPU memory. It is sent via RDME network adapter like infinity band to the remote host with no CPU environment. It seems that the communication will be done more quickly without CPU environment. So, then what do we need to use GPU Direct to RDME? Various environment setting is necessary for GPU Direct RDME applying GPU Direct RDME to Kubeflow. For hardware, we need network activities that support RDME communication. And for our POC, we've set bare-measure environment with infinity band network adapter and NVIDIA A100 GPU. In order to detect GPU and network adapter, driver and turkey setting is necessary for operating system layer and Kubernetes system layer. The parts in light green are the modules for using GPU and those in dark blue are the modules for using a network adapter. Let's first look at OS layer. We have to set four things displayed in diagram. When NVIDIA developer is installed to have GPU recognized and OS and the NVIDIA container toolkit is set to be run on Kubernetes, then it is possible to use GPU. After installing all-faith driver to have infinity band network adapter recognized and installing environment driver that supports RDME communication, then setting of OS layer is completed. When the setting for OS layer is done, then let's take a look at Kubernetes layer. As you can see, we have to set NVIDIA device plugin and RDME shared device. To Kubernetes layer. NVIDIA device plugin is a demo set that automatically recognizes and runs GPU in Kubernetes layer. It is mandatory for using GPU in Kubernetes. If RDME shares device that allows access between parts by sharing the RDME device between the remote Kubernetes node, then we are ready to use GPU Direct RDME in Kubernetes layer. The part in yellow is the container image layer and we used CUDA, CU-DNN, and NICL for our POC. Then all the preparation is completed to use GPU Direct RDME. Let's take a look at the sample that we tested. It is a sample that executes distributed training on image segmentation model using training operator by torch job embedded in CUDAflow. We set the part in red rectangle to use GPU Direct RDME. First, setting of two OS environment variable in container image is necessary. One variable is for NICL communication using infinite event and the other is for GPU Direct RDME level. Then after we validate RDME shared device, which is the custom resource set in Kubernetes layer in previous, in advance, then set the security contact for IP slack. Then we can proceed with the test we want. Let's look at the log that has actually been executed. The OS environment variable is set properly and we can see the A100 GPU. And infinite event is set to zero. It means that infinite is not disabled. In other words, we use infinite event. Using GPU Direct RDME, we can see NICL log where training takes place. How effective ODP? Let's see. This is on throughput measured by increasing the number of GPUs for image classification, detection and segmentation model and natural language understanding model in our POC environment. We increased the number of GPUs from 1 to 2 for 8 and 16 and used a total of 16 GPUs for the red rectangle. And it is the comparison of performance results between the green bar that uses GPU Direct RDME and the blue bar that does not. It differs model by model, but generally, we can expect the effect to be around 114 to 612%. Basically, as the number of GPU increases, the performance improved. But in some model, the performance of multi nodes may be undermined if a huge value of parameter communication continuously takes place in the model. But by using GPU Direct RDME, it can communicate more effectively. As we saw the performance verification result, we achieved extremely satisfying the result. And by applying this, we released an infinite-band based multi-node GPU service on SSP last month. And yes, that's it. I think this is what I wanted to share today. The presentation was based on the cases from our experience. Although it was a brief explanation completed in about 30 minutes due to the time limit, I want to mention that we have gone through a countless trial and error. Many of you working in this field may be or will be going through the same difficulties. So I hope you find my presentation a little bit helpful. And I'd like to finish today's presentation. So thank you for your time and attention. And stay and have a safe trip. And thank you. Thank you. And also you can download this presentation at theschedery.com. And any question? Okay. Cause you're the engineer team? Yes. Actually we proceeded with our PFC based on Docker but our Qicoin service is based on Continuity. So we processed with Continuity based tool. Yes, it is based on Docker result. hit the list with a container date? Oh, yes. 고맙습니다. 감사합니다. 고맙습니다. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 네. 큐브플로우는 MIG를 볼 수 없었을 것 같아요. 그런데 그 변화가 삼성 S&P 플랫폼에 적용되지 않았지요? 아니면 큐브플로우를 돌아다니던지요? 사실 우리 S&P 큐브플로우 서비스에 적용되지 않았습니다. 오케이. 그러면 그 큐브플로우는 MIG에 적용될 수 있을 것 같아요. 감사합니다. 오케이. MIG에 적용되지 않는 때, 제가 MIG에 적용되는 기간에서 적용되어서 MIGs를 적용되게 하는創립은rings에서 적용되고, procurements-connect을 활용하는 것具다? Ethnernet에 적용되지 않는 것 이기 때문에 자꾸 GPU디에 적용되지 않으신 것 같나요? 죄송합니다. Sorry. Could you take over your mask, please? I'm sorry. One of the first tests you were running was distributed training in MIG. Right? You did it with 2 MIG instances per container and it failed. But with a single MIG instance per container, it worked. What was the interconnect? 사실은, 앰베리아mpere가 앰베리아mpere가 작동을 했죠. 그래서, 그들과 함께... 그래서, 저는 인플라 밴드에 사용하지 않았죠. 에이터넷에 돌아갔죠. 인터넷에? 인터넷에? 그... 그... 그 전통을 제외한지? 어... 그... 인플라 밴드에... 인플리밴드와 같은 맥인스텐스에서 사용했죠? 사실 인플리밴드는 시그너미그 인스텐스와 함께 그럼, 죄송합니다. 정말 죄송합니다. 다른 질문? 오케이. 그럼, 그게 끝이에요. 다시 한 번 감사드립니다.